Powiedzmy mam singleton klasy tak:Jak dodać metod klasy wygoda do klasy Singleton w Ruby
class Settings
include Singleton
def timeout
# lazy-load timeout from config file, or whatever
end
end
Teraz jeśli chcę wiedzieć, co czas oczekiwania używać muszę napisać coś takiego:
Settings.instance.timeout
ale wolałbym skrócić że do
Settings.timeout
jeden oczywisty sposób do tej pracy byłoby zmodyfikować wyko żania ustawienia do:
class Settings
include Singleton
def self.timeout
instance.timeout
end
def timeout
# lazy-load timeout from config file, or whatever
end
end
to działa, ale to byłoby dość uciążliwe ręcznie napisać metodę klasy dla każdej metody instancji. To jest rubin, musi to być mądry i sprytny, dynamiczny sposób, aby to zrobić.
Awesome odpowiedź. W moim konkretnym przypadku SingleForwardable jest dokładnie tym, czego szukałem. Dzięki! –