A module which adds some generators for hash based accessors.
# File lib/hash_attrs.rb, line 29 def hash_accessor(hash, *syms) hash_reader(hash, syms) hash_writer(hash, syms) end
# File lib/hash_attrs.rb, line 4 def hash_reader(hash_sym, syms) syms.each do |id| id = id.to_s.downcase func = Proc.new do hash = instance_variable_get(hash_sym) hash[id.to_sym] end self.send(:define_method, id, func) end end
# File lib/hash_attrs.rb, line 16 def hash_writer(hash_sym, syms) syms.each do |id| id = id.to_s.downcase func = Proc.new do |val| hash = instance_variable_get(hash_sym) hash[id.to_sym] = val end self.send(:define_method, id+'=', func) end end