module Garcon::Extensions::MethodReader

MethodReader allows you to access keys of the hash via method calls. This gives you an OStruct like way to access your hash’s keys. It will recognize keys either as strings or symbols.

@note

That while nil keys will be returned as nil, undefined keys will raise
NoMethodErrors. Also note that #respond_to? has been patched to
appropriately recognize key methods.

@example

class StashCache < Hash
  include Garcon::Extensions::MethodReader
end

cash = StashCache.new
cash['box'] = 'full'
cash.box # => 'full'

Public Instance Methods

method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/garcon/core_ext/method_access.rb, line 46
def method_missing(name, *args)
  if key?(name)
    self[name]
  else
    sname = name.to_s
    if key?(sname)
      self[sname]
    elsif sname[-1] == '?'
      kname = sname[0..-2]
      key?(kname) || key?(kname.to_sym)
    else
      super
    end
  end
end
respond_to?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/garcon/core_ext/method_access.rb, line 41
def respond_to?(name, include_private = false)
  return true if key?(name.to_s) || key?(name.to_sym)
  super
end