Sha256: eba9666c28cf68d943170a00109a0e10e0688f336bd960499a1519a58f014411

Contents?: true

Size: 630 Bytes

Versions: 10

Compression:

Stored size: 630 Bytes

Contents

class Hash

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

  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

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

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

end

Version data entries

10 entries across 9 versions & 2 rubygems

Version Path
facets-glimmer-3.2.0 lib/core/facets/hash/deep_merge.rb
facets-3.1.0 lib/core/facets/hash/deep_merge.rb
facets-3.0.0 lib/core/facets/hash/deep_merge.rb
facets-2.9.3 lib/core/facets/hash/deep_merge.rb
facets-2.9.2 lib/core/facets/hash/deep_merge.rb
facets-2.9.2 src/core/facets/hash/deep_merge.rb
facets-2.9.1 lib/core/facets/hash/deep_merge.rb
facets-2.9.0 lib/core/facets/hash/deep_merge.rb
facets-2.9.0.pre.2 lib/core/facets/hash/deep_merge.rb
facets-2.9.0.pre.1 lib/core/facets/hash/deep_merge.rb