Sha256: 865a8987bb8f725ada64961a4ea180feb2ba866826fae236a02933b4114f0cb8

Contents?: true

Size: 489 Bytes

Versions: 72

Compression:

Stored size: 489 Bytes

Contents

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


  def extend(second)
    second.each { |k, v|

      if ((self.key? k) and (v.is_a? Hash and self[k].is_a? Hash))
        self[k].extend(v)
      else
        self[k] = v
      end

    } if second.is_a? Hash

    self
  end
end

Version data entries

72 entries across 72 versions & 2 rubygems

Version Path
ciinabox-ecs-0.4.2 ext/common_helper.rb
ciinabox-ecs-0.4.1 ext/common_helper.rb
ciinabox-ecs-0.3.2 ext/common_helper.rb
ciinabox-ecs-0.3.2.alpha.1622701697 ext/common_helper.rb
ciinabox-ecs-0.3.1.alpha.1622698898 ext/common_helper.rb
ciinabox-ecs-0.3.1.alpha.1622695860 ext/common_helper.rb
ciinabox-ecs-0.3.1 ext/common_helper.rb
ciinabox-ecs-0.3.1.alpha.1617687041 ext/common_helper.rb
ciinabox-ecs-0.3.0.alpha.1617686815 ext/common_helper.rb
ciinabox-ecs-0.3.0 ext/common_helper.rb
ciinabox-ecs-0.3.0.alpha.1612412532 ext/common_helper.rb
ciinabox-ecs-0.3.0.alpha.1612411765 ext/common_helper.rb
ciinabox-ecs-0.3.0.alpha.1612323213 ext/common_helper.rb
ciinabox-ecs-0.2.17.alpha.1612322070 ext/common_helper.rb
ciinabox-ecs-0.2.17.alpha.1608078804 ext/common_helper.rb
ciinabox-ecs-0.2.17 ext/common_helper.rb
ciinabox-ecs-0.2.16 ext/common_helper.rb
ciinabox-ecs-0.2.15.alpha.1565746583 ext/common_helper.rb
ciinabox-ecs-0.2.15 ext/common_helper.rb
ciinabox-ecs-0.2.14.alpha.1565134498 ext/common_helper.rb