class Hash
Public Instance Methods
deep_merge(second)
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/foxy/extensions.rb, line 35 def downcase_keys each_with_object({}) { |(k, v), h| h.store(k.downcase, v) } end
recursive_hash()
click to toggle source
# 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
slice(*keys)
click to toggle source
# File lib/foxy/extensions.rb, line 31 def slice(*keys) Hash[keys.zip(values_at(*keys))] end
symbolize_keys()
click to toggle source
# File lib/foxy/extensions.rb, line 18 def symbolize_keys Hash[map { |k, v| [k.to_sym, v] }] end