este problema se puede solucionar de diversas maneras, por lo tanto te compartimos la que en nuestra opinión es la respuesta más completa.
Solución:
Ruby admite de forma nativa variables de clase en módulos, por lo que puede usar variables de clase directamente, y no algunas variables de proxy o pseudo-clase:
module Site
@@name = "StackOverflow"
def self.setName(value)
@@name = value
end
def self.name
@@name
end
end
Site.name # => "StackOverflow"
Site.setName("Test")
Site.name # => "Test"
Si no necesita llamarlo desde una instancia, simplemente puede usar una variable de instancia dentro del cuerpo del módulo.
module SomeModule
module_function
def param; @param end
def param= v; @param = v end
end
SomeModule.param
# => nil
SomeModule.param = 1
SomeModule.param
# => 1
La variable de instancia @param
entonces pertenecerá al módulo SomeModule
que es una instancia de la Module
clase.
puede establecer una variable de instancia de clase en el módulo.
module MyModule
class << self; attr_accessor :var; end
end
MyModule.var = 'this is saved at @var'
MyModule.var
=> "this is saved at @var"
Ten en cuenta difundir esta reseña si te fue útil.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)