Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/hash_enhancements.rb,
lib/hash_enhancements.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(other_hash) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/hash_enhancements.rb', line 5

def deep_merge(other_hash)
  result = dup
  other_hash.each do |key, value|
    existing_value = result[key]
    result[key] = if existing_value.is_a?(Hash)
                    existing_value.deep_merge(value)
                  else
                    value
                  end
  end
  result
end

#deep_symbolize_keysObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/hash_enhancements.rb', line 22

def deep_symbolize_keys
  result = {}
  each_pair do |k, v|
    result[k.to_sym] = case v
                       when Hash
                         v.deep_symbolize_keys
                       when Array
                         v.collect { |item| item.is_a?(Hash) ? item.deep_symbolize_keys : item }
                       else
                         v
                       end
  end
  result
end