Class: Hash
Instance Method Summary collapse
- #deep_merge(second) ⇒ Object
- #deep_symbolize_keys ⇒ Object
- #downcase_keys ⇒ Object
- #recursive_hash ⇒ Object
- #slice(*keys) ⇒ Object
- #symbolize_keys ⇒ Object
Instance Method Details
#deep_merge(second) ⇒ Object
22 23 24 25 |
# File 'lib/foxy/extensions.rb', line 22 def deep_merge(second) merger = proc { |_, v1, v2| v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.merge(v2, &merger) : v2 } merge(second, &merger) end |
#deep_symbolize_keys ⇒ Object
14 15 16 |
# File 'lib/foxy/extensions.rb', line 14 def deep_symbolize_keys symbolize_keys.tap { |h| h.each { |k, v| h[k] = v.deep_symbolize_keys } } end |
#downcase_keys ⇒ Object
35 36 37 |
# File 'lib/foxy/extensions.rb', line 35 def downcase_keys each_with_object({}) { |(k, v), h| h.store(k.downcase, v) } end |
#recursive_hash ⇒ Object
27 28 29 |
# File 'lib/foxy/extensions.rb', line 27 def recursive_hash tap { self.default_proc = proc { |h, k| h[k] = Hash.new(&h.default_proc) } } end |