aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/hash/deep_dup.rb
blob: 447142605c7d80df6e2d747d2d2de4f3fdb836c5 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                      
class Hash
  # Returns a deep copy of hash.
  def deep_dup
    duplicate = self.dup
    duplicate.each_pair do |k,v|
      tv = duplicate[k]
      duplicate[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_dup : v
    end
    duplicate
  end
end