Tengo una clase con una constante definida para él. Luego tengo un método de clase definido que accede a esa constante de clase. Esto funciona bien Un ejemplo:(En Ruby) permitiendo métodos de clase mixta acceso a constantes de clase
#! /usr/bin/env ruby
class NonInstantiableClass
Const = "hello, world!"
class << self
def shout_my_constant
puts Const.upcase
end
end
end
NonInstantiableClass.shout_my_constant
surge Mi problema en el intento de mover este método de clase a un módulo externo, así:
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
Rubí interpreta el método como solicitar una constante desde el módulo, en lugar de la clase:
line 5:in `shout_my_constant': uninitialized constant CommonMethods::Const (NameError)
Entonces, ¿qué hacer trucos de magia que compañeros que dejar que el acceso método de la constante de la clase? Muchas gracias.
Bueno, eso aclara las cosas. Aún no había experimentado la :: sintaxis :). – jameshfisher
No pares de leer ahora mismo. Lea a continuación la respuesta de Johanna. – Sebastian