Skip to content

Instantly share code, notes, and snippets.

@wuhuizuo
Created April 19, 2014 15:10

Revisions

  1. wuhuizuo created this gist Apr 19, 2014.
    13 changes: 13 additions & 0 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    class Hash
    def deep_merge!(other_hash)
    other_hash.each_pair do |k, v|
    tv = self[k]
    self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
    end
    self
    end

    def deep_merge(other_hash)
    dup.deep_merge!(other_hash)
    end
    end