Class: Hash

Inherits:
Object show all
Defined in:
lib/bosh/director/ext.rb,
lib/bosh/director/manifest/changeset.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(second) ⇒ Object



2
3
4
5
# File 'lib/bosh/director/manifest/changeset.rb', line 2

def deep_merge(second)
  merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
  self.merge(second, &merger)
end

#recursive_merge(other) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/bosh/director/ext.rb', line 20

def recursive_merge(other)
  self.merge(other) do |_, old_value, new_value|
    if old_value.class == Hash && new_value.class == Hash
      old_value.recursive_merge(new_value)
    else
      new_value
    end
  end
end

#to_openstructObject



30
31
32
33
34
# File 'lib/bosh/director/ext.rb', line 30

def to_openstruct
  mapped = {}
  each { |key, value| mapped[key] = value.to_openstruct }
  OpenStruct.new(mapped)
end