Module: Hashie::Extensions::MethodQuery
- Defined in:
- lib/hashie/extensions/method_access.rb
Overview
MethodQuery gives you the ability to check for the truthiness of a key via method calls. Note that it will return false if the key is set to a non-truthful value, not if the key isn't set at all. Use #key? for checking if a key has been set.
MethodQuery will check against both string and symbol names of the method for existing keys. It also patches #respond_to to appropriately detect the query methods.
Instance Method Summary collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
104 105 106 107 108 109 110 |
# File 'lib/hashie/extensions/method_access.rb', line 104 def method_missing(name, *args) if args.empty? && name.to_s =~ /(.*)\?$/ && (key?(Regexp.last_match[1]) || key?(Regexp.last_match[1].to_sym)) return self[Regexp.last_match[1]] || self[Regexp.last_match[1].to_sym] end super end |
Instance Method Details
#respond_to?(name, include_private = false) ⇒ Boolean
99 100 101 102 |
# File 'lib/hashie/extensions/method_access.rb', line 99 def respond_to?(name, include_private = false) return true if name.to_s =~ /(.*)\?$/ && (key?(Regexp.last_match[1]) || key?(Regexp.last_match[1].to_sym)) super end |