Sha256: 7b579321fdee92e388d3f9fbde3dd145b0b22bbcf72ef29ed20af6273e99ed04

Contents?: true

Size: 276 Bytes

Versions: 11

Compression:

Stored size: 276 Bytes

Contents

class ::Hash
  def deep_merge(second)
    merger = proc do |key, v1, v2|
      Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2
    end

    self.merge(second.to_h, &merger)
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
danarchy_deploy-0.2.11 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.10 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.9 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.8 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.7 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.6 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.5 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.4 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.3 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.2 lib/danarchy_deploy/hash_deep_merge.rb
danarchy_deploy-0.2.1 lib/danarchy_deploy/hash_deep_merge.rb