提交 1c06bd17 编写于 作者: C Carlos Antonio da Silva

Remove deprecated Array#uniq_by and Array#uniq_by!

Use native Array#uniq and Array#uniq! instead.
上级 cad3a130
* Remove deprecated `Array#uniq_by` and `Array#uniq_by!`, use native
`Array#uniq` and `Array#uniq!` instead.
*Carlos Antonio da Silva*
* Remove deprecated `ActiveSupport::BasicObject`, use `ActiveSupport::ProxyObject` instead.
*Carlos Antonio da Silva*
......
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/conversions'
require 'active_support/core_ext/array/extract_options'
require 'active_support/core_ext/array/grouping'
......
class Array
# *DEPRECATED*: Use <tt>Array#uniq</tt> instead.
#
# Returns a unique array based on the criteria in the block.
#
# [1, 2, 3, 4].uniq_by { |i| i.odd? } # => [1, 2]
def uniq_by(&block)
ActiveSupport::Deprecation.warn 'uniq_by is deprecated. Use Array#uniq instead'
uniq(&block)
end
# *DEPRECATED*: Use <tt>Array#uniq!</tt> instead.
#
# Same as +uniq_by+, but modifies +self+.
def uniq_by!(&block)
ActiveSupport::Deprecation.warn 'uniq_by! is deprecated. Use Array#uniq! instead'
uniq!(&block)
end
end
......@@ -359,36 +359,6 @@ def test_extract_options_extracts_hwia
end
end
class ArrayUniqByTests < ActiveSupport::TestCase
def test_uniq_by
ActiveSupport::Deprecation.silence do
assert_equal [1,2], [1,2,3,4].uniq_by { |i| i.odd? }
assert_equal [1,2], [1,2,3,4].uniq_by(&:even?)
assert_equal((-5..0).to_a, (-5..5).to_a.uniq_by{ |i| i**2 })
end
end
def test_uniq_by!
a = [1,2,3,4]
ActiveSupport::Deprecation.silence do
a.uniq_by! { |i| i.odd? }
end
assert_equal [1,2], a
a = [1,2,3,4]
ActiveSupport::Deprecation.silence do
a.uniq_by! { |i| i.even? }
end
assert_equal [1,2], a
a = (-5..5).to_a
ActiveSupport::Deprecation.silence do
a.uniq_by! { |i| i**2 }
end
assert_equal((-5..0).to_a, a)
end
end
class ArrayWrapperTests < ActiveSupport::TestCase
class FakeCollection
def to_ary
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册