Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/flyml/core_ext/hash.rb
Direct Known Subclasses
Instance Method Summary collapse
Instance Method Details
#deep_fetch(*args, &block) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/flyml/core_ext/hash.rb', line 29 def deep_fetch(*args, &block) return self if args.empty? value = fetch(args.shift, &block) if value.is_a?(Hash) value.deep_fetch(*args, &block) elsif value.is_a?(Array) && !args.empty? value = value[args.shift] value.deep_fetch(*args, &block) else value end end |
#recursive_symbolize_keys! ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/flyml/core_ext/hash.rb', line 14 def recursive_symbolize_keys! symbolize_keys! # symbolize each hash in .values values.each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) } # symbolize each hash inside an array in .values values. select { |v| v.is_a?(Array) }. flatten. each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) } self end |
#symbolize_keys! ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 |
# File 'lib/flyml/core_ext/hash.rb', line 2 def symbolize_keys! keys.each do |key| new_key = begin key.to_sym rescue key end self[new_key] = delete(key) end end |