Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/isodoc/i18n.rb,
lib/relaton/render/general.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(second) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/isodoc/i18n.rb', line 28

def deep_merge(second)
  merger = proc { |_, v1, v2|
    if Hash === v1 && Hash === v2
      v1.merge(v2, &merger)
    elsif Array === v1 && Array === v2
      v1 | v2
    elsif [:undefined, nil,
           :nil].include?(v2)
      v1
    else
      v2
    end
  }
  merge(second.to_h, &merger)
end