Disons que j'ai une classe singleton comme ceci:Comment ajouter des méthodes de classe pratique pour une classe Singleton en rubis
class Settings
include Singleton
def timeout
# lazy-load timeout from config file, or whatever
end
end
Maintenant, si je veux savoir ce délai d'attente à utiliser je dois écrire quelque chose comme:
Settings.instance.timeout
mais je préfère que réduis à
Settings.timeout
Une façon évidente de faire ce travail consisterait à modifier le œuvre mise à des paramètres:
class Settings
include Singleton
def self.timeout
instance.timeout
end
def timeout
# lazy-load timeout from config file, or whatever
end
end
Cela fonctionne, mais il serait assez fastidieux d'écrire manuellement une méthode de classe pour chaque méthode d'instance. C'est du rubis, il doit y avoir une façon intelligente et intelligente de faire cela.
Impressionnant répondre. Dans mon cas particulier SingleForwardable est exactement ce que je cherchais. Merci! –