I'm trying to generate the attr_reader from a hash (with nested hash) so that it mirror the instance_variable creation automatically.
here is what i have so far:
data = {:@datetime => '2011-11-23', :@duration => '90', :@class => {:@price => '£7', :@level => 'all'}}   class Event  #attr_reader :datetime, :duration, :class, :price, :level   def init(data, recursion)    data.each do |name, value|     if value.is_a? Hash       init(value, recursion+1)     else       instance_variable_set(name, value)       #bit missing: attr_accessor name.to_sym      end   end end   But i can't find out a way to do that :(
You need to call the (private) class method attr_accessor on the Event class:
    self.class.send(:attr_accessor, name)   I recommend you add the @ on this line:
    instance_variable_set("@#{name}", value)   And don't use them in the hash.
    data = {:datetime => '2011-11-23', :duration => '90', :class => {:price => '£7', :level => 'all'}} 
                        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