提交 98553a55 编写于 作者: P Piotr Sarnacki

Keep all methods in object/deep_dup

上级 04039286
require 'active_support/core_ext/array/wrap'
require 'active_support/core_ext/array/access'
require 'active_support/core_ext/array/uniq_by'
require 'active_support/core_ext/array/deep_dup'
require 'active_support/core_ext/array/conversions'
require 'active_support/core_ext/array/extract_options'
require 'active_support/core_ext/array/grouping'
......
class Array
# Returns a deep copy of array.
def deep_dup
map { |it| it.deep_dup }
end
end
require 'active_support/core_ext/hash/conversions'
require 'active_support/core_ext/hash/deep_merge'
require 'active_support/core_ext/hash/deep_dup'
require 'active_support/core_ext/hash/diff'
require 'active_support/core_ext/hash/except'
require 'active_support/core_ext/hash/indifferent_access'
......
class Hash
# Returns a deep copy of hash.
def deep_dup
each_with_object(dup) do |(key, value), hash|
hash[key.deep_dup] = value.deep_dup
end
end
end
......@@ -4,3 +4,19 @@ def deep_dup
duplicable? ? dup : self
end
end
class Array
# Returns a deep copy of array.
def deep_dup
map { |it| it.deep_dup }
end
end
class Hash
# Returns a deep copy of hash.
def deep_dup
each_with_object(dup) do |(key, value), hash|
hash[key.deep_dup] = value.deep_dup
end
end
end
require 'abstract_unit'
require 'active_support/core_ext/object'
require 'active_support/core_ext/array'
require 'active_support/core_ext/hash'
class DeepDupTest < ActiveSupport::TestCase
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册