Sha256: 14876f6cd8e7d473473e004cf687b98390974d25395a0131f0a8bacf78f1eca7

Contents?: true

Size: 701 Bytes

Versions: 16

Compression:

Stored size: 701 Bytes

Contents

module Hashie
  module Extensions
    module DeepMerge
      # Returns a new hash with +self+ and +other_hash+ merged recursively.
      def deep_merge(other_hash)
        (class << (h = dup); self; end).send :include, Hashie::Extensions::DeepMerge
        h.deep_merge!(other_hash)
      end

      # Returns a new hash with +self+ and +other_hash+ merged recursively.
      # Modifies the receiver in place.
      def deep_merge!(other_hash)
        other_hash.each do |k,v|
          (class << (tv = self[k]); self; end).send :include, Hashie::Extensions::DeepMerge
          self[k] = tv.is_a?(::Hash) && v.is_a?(::Hash) ? tv.deep_merge(v) : v
        end
        self
      end
    end
  end
end

Version data entries

16 entries across 14 versions & 3 rubygems

Version Path
apl-library-0.0.90 vendor/bundle/ruby/1.9.1/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/1.9.1/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.7 vendor/bundle/ruby/2.1.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.7 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.6 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.5 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.4 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.3 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.2 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
climine-0.0.1 vendor/bundle/ruby/2.0.0/gems/hashie-2.0.5/lib/hashie/extensions/deep_merge.rb
hashie-2.0.5 lib/hashie/extensions/deep_merge.rb
hashie-2.0.4 lib/hashie/extensions/deep_merge.rb
hashie-2.0.3 lib/hashie/extensions/deep_merge.rb
hashie-2.0.2 lib/hashie/extensions/deep_merge.rb
hashie-2.0.1 lib/hashie/extensions/deep_merge.rb
hashie-2.0.0 lib/hashie/extensions/deep_merge.rb