Module: Hashie::Extensions::MethodReader
- Defined in:
- lib/hashie/extensions/method_access.rb
Overview
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.
Instance Method Summary collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/hashie/extensions/method_access.rb', line 35 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 |
Instance Method Details
#respond_to_missing?(name, include_private = false) ⇒ Boolean
30 31 32 33 |
# File 'lib/hashie/extensions/method_access.rb', line 30 def respond_to_missing?(name, include_private = false) return true if key?(name.to_s) || key?(name.to_sym) super end |