Digamos que tengo una clase Singleton así:Cómo agregar métodos de la clase de conveniencia a una clase Singleton en rubí
class Settings
include Singleton
def timeout
# lazy-load timeout from config file, or whatever
end
end
Ahora, si yo quiero saber qué tiempo de espera para utilizar tengo que escribir algo como:
Settings.instance.timeout
pero prefiero que acortar a
Settings.timeout
Una manera obvia de hacer este trabajo sería modificar la imple mentación de los ajustes a:
class Settings
include Singleton
def self.timeout
instance.timeout
end
def timeout
# lazy-load timeout from config file, or whatever
end
end
que funciona, pero sería bastante tedioso para escribir manualmente a cabo un método de clase para cada método de instancia. Esto es Ruby, debe haber una forma inteligente inteligente de hacer esto.
Awesome responder. En mi caso particular, SingleForwardable es exactamente lo que estaba buscando. ¡Gracias! –