I am using Ruby on Rails 3 and, since I have a declared a class with a lot of variables, I would declare all 'attr_reader' or 'attr_writer' for those class variables at one time.
I tryed
class Persone
attr_reader :all
def initialize(name, surname, ...)
@name = name
@surname = surname
... # A lot of variables!
end
end
but that doesn't work.
class Persone
INSTANCE_VARS = [:name,:surname]
attr_reader *INSTANCE_VARS
def initialize(*params)
params.each_with_index do |param,index|
instance_variable_set("@"+INSTANCE_VARS[index].to_s,param)
end
end
end
I thing you should use:
attr_accesor :name, :surname, ...
def initialize(name, surname, ...)
@name = name
@surname = surname
...
end
This way you get a setter and a getter in only one step, but you still have to enum all that variable names.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With