Sha256: cb699db2e712145302e4a99292224e7e049d63e60f673bc62f61b741a3dfe340

Contents?: true

Size: 674 Bytes

Versions: 13

Compression:

Stored size: 674 Bytes

Contents

# -*- coding: utf-8 -*-

# activesupport-3.1.0以上では
# active_support/core_ext/hash/deep_dupでHash#deep_dupを定義していますが、
# 対象がHashだけなのでArrayをコピーできません。
# Arrayや他のオブジェクトに対応するためにメソッドを上書きします。

if ActiveSupport::VERSION::STRING >= "3.1.0"
  require 'active_support/core_ext/hash/deep_dup'
end

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.respond_to?(:deep_dup) && v.respond_to?(:deep_dup) ? tv.deep_dup : v
    end
    duplicate
  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
tengine_support-1.1.0 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.27 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.26 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.25 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.24 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.22 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.21 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.20 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.19 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.18 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.17 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.16 lib/tengine/support/core_ext/hash/deep_dup.rb
tengine_support-0.3.15 lib/tengine/support/core_ext/hash/deep_dup.rb