module HashAttrs

A module which adds some generators for hash based accessors.

Public Instance Methods

hash_accessor(hash, *syms) click to toggle source
# File lib/hash_attrs.rb, line 29
def hash_accessor(hash, *syms)
  hash_reader(hash, syms)
  hash_writer(hash, syms)
end
hash_reader(hash_sym, syms) click to toggle source
# 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
hash_writer(hash_sym, syms) click to toggle source
# 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