Method: Hash#metch
- Defined in:
- lib/core_ext/hash.rb
#metch(search, default = :__n_o_n_e__) ⇒ Object
Returns a value from the hash for the matching key
Similar to fetch
, search the hash keys for the search string and return the corresponding value. Unlike fetch
, however, if a hash key is a Regexp, the search argument is matched against this Regexp. The hash is searched in its natural order.
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/core_ext/hash.rb', line 21 def metch(search, default=:__n_o_n_e__) fetch search rescue KeyError each do |key, value| next unless key.is_a? Regexp return value if key.match? search end raise(KeyError, "no match found: #{search.inspect}") if default == :__n_o_n_e__ default end |