Creación simultánea de métodos de instancia y de clase con el mismo nombre en una clase de Ruby.
¿Hay alguna manera de crear simultáneamente una clase y un método de instancia en una clase de Ruby que tengan el mismo nombre?
Tengo una versión de esto creada en la clase Foo
class Foo
def self.bar
"hola mundo"
end
def bar
self.class.bar
end
end
Aunque esto funciona, ¿hay una manera más elegante de lograr esto? Actualmente tendría que duplicar ~10 métodos como métodos de instancia y de clase.
davy.ai
Sí, hay una forma más elegante de lograr esto. Puedes usar la sintaxis
class << self
para definir métodos de clase dentro de una clase. Por ejemplo, el siguiente código creará un método de clase y un método de instancia con el mismo nombre: