ruby - inicializando rubton singleton
initialization rubymotion (2)
Hay una biblioteca estándar para singletons :
require ''singleton''
class MyClass
include Singleton
end
Para arreglar su código, puede usar lo siguiente:
class MyClass
attr_accessor :var_i_want_to_init
def self.instance
@@instance ||= new
end
def initialize # tried 1. initialize, 2. new, 3. self.initialize, 4. self.new
puts "I''m being initialized!"
@var_i_want_to_init = 2
end
end
Estoy tratando de inicializar un singleton en ruby. Aquí hay un código:
class MyClass
attr_accessor :var_i_want_to_init
# singleton
@@instance = MyClass.new
def self.instance
@@instance
end
def initialize # tried 1. initialize, 2. new, 3. self.initialize, 4. self.new
puts "I''m being initialized!"
@var_i_want_to_init = 2
end
end
El problema es que nunca se invoca initialize y, por lo tanto, el singleton nunca se inicializa. Intenté nombrar el método init initialize, self.initialize, new y self.new. Nada funcionó. "Me estoy inicializando" nunca se imprimió y la variable nunca se inicializó cuando hice una instancia con
my_var = MyClass.instance
¿Cómo puedo configurar el singleton para que se inicialice? Ayuda apreciada,
Pachun
Rubymotion (1.24+) ahora parece apoyar el uso de GCD para la creación de singleton
class MyClass
def self.instance
Dispatch.once { @instance ||= new }
@instance
end
end