1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Alias Set#=== to #include?

* set.rb (Set#===): Added via [Feature #13801] by davidarnold.

Closes #1673.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
knu 2017-09-19 08:45:12 +00:00
parent b40a9475db
commit 2aee703e7a
5 changed files with 49 additions and 0 deletions

1
NEWS
View file

@ -149,6 +149,7 @@ with all sufficient information, see the ChangeLog file or Redmine
* Set
* Add Set#to_s as alias to #inspect [Feature #13676]
* Add Set#=== as alias to #inspect [Feature #13801]
* WEBrick

View file

@ -475,6 +475,23 @@ class Set
@hash.eql?(o.instance_variable_get(:@hash))
end
# Returns true if obj is a member of the set, and false otherwise.
#
# Used in case statements:
#
# case :apple
# when Set[:potato, :carrot] then 'vegetable'
# when Set[:apple, :banana] then 'fruit'
# end
# #=> "fruit"
#
# Or by itself:
#
# Set[1, 2, 3] === 2 #=> true
# Set[1, 2, 3] === 4 #=> false
#
alias === include?
# Classifies the set by the return value of the given block and
# returns a hash of {value => set of elements} pairs. The block is
# called once for each element of the set, passing the element as

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/include', __FILE__)
require 'set'
describe "Set#===" do
it_behaves_like :set_include, :===
end

View file

@ -0,0 +1,7 @@
require File.expand_path('../../../../spec_helper', __FILE__)
require File.expand_path('../shared/include', __FILE__)
require 'set'
describe "SortedSet#===" do
it_behaves_like :sorted_set_include, :===
end

View file

@ -200,6 +200,23 @@ class TC_Set < Test::Unit::TestCase
assert_equal(false, set.include?(true))
end
def test_eqq
set = Set[1,2,3]
assert_equal(true, set === 1)
assert_equal(true, set === 2)
assert_equal(true, set === 3)
assert_equal(false, set === 0)
assert_equal(false, set === nil)
set = Set["1",nil,"2",nil,"0","1",false]
assert_equal(true, set === nil)
assert_equal(true, set === false)
assert_equal(true, set === "1")
assert_equal(false, set === 0)
assert_equal(false, set === true)
end
def test_superset?
set = Set[1,2,3]