Method: Hash#deep_merge

Defined in:
lib/core/facets/hash/deep_merge.rb

#deep_merge(other) ⇒ Object

Same as Hash#merge but recursively merges sub-hashes.



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

def deep_merge(other)
  hash = self.dup
  other.each do |key, value|
    myval = self[key]
    if value.is_a?(Hash) && myval.is_a?(Hash)
      hash[key] = myval.deep_merge(value)
    else
      hash[key] = value
    end
  end
  hash
end