module Controll::Helper::HashAccess::ClassMethods

Public Instance Methods

hash_access_method(*args)
Alias for: hash_access_methods
hash_access_methods(*args) click to toggle source
# File lib/controll/helper/hash_access.rb, line 6
def hash_access_methods *args
  options = args.extract_options!
  hash_name = options[:hash]
  names = args

  raise ArgumentError, "Must take a :hash option indicating the hash name to access" unless hash_name
  raise ArgumentError, "Must take one or more names of methods to create" if names.blank? 

  names.each do |name|
    define_method name do            
      unless instance_variable_get("@#{name}")
        instance_variable_set "@#{name}", (send(hash_name)[name.to_sym]) || options[:default]
      end
    end
  end
end
Also aliased as: hash_access_method