Estoy tratando de crear una clase de Ruby donde el método initialize
toma un hash de opciones. Entonces tengo esas opciones como attr_accessor
s para la clase. Ahora, podría hacer algo comoself.send (method, =, value) no funciona
class User
attr_accessor :name, :email, :phone
def initialize(options)
self.name = options[:name]
self.email = options[:email]
self.phone = options[:phone]
end
end
User.new(:name => 'Some Name', :email => '[email protected]', :phone => 435543093)
pero no me parece muy SECO. En cambio, me gustaría hacer
class User
attr_accessor :name, :email, :phone
def initialize(options)
options.each do |option_name, option_value|
# Does not work!!
self.send(option_name, '=', option_value)
# Does not work either!!
self.send(option_name, '=' + option_value)
end
end
end
User.new(:name => 'Some Name', :email => '[email protected]', :phone => 435543093)
pero no consigo que la sintaxis funcione!
¿Qué estoy haciendo mal?
Gracias! Eso tiene sentido. – raikiri