[ruby/set] Set#merge does not take keyword arguments as a Hash

https://github.com/ruby/set/commit/ca1c9532a9
This commit is contained in:
Akinori MUSHA 2023-02-24 17:37:00 +09:00 committed by git
parent 454ac4cbb2
commit 5d5ff6e5ed
3 changed files with 6 additions and 2 deletions

View File

@ -598,7 +598,7 @@ class Set
# Merges the elements of the given enumerable objects to the set and
# returns self.
def merge(*enums)
def merge(*enums, **nil)
enums.each do |enum|
if enum.instance_of?(self.class)
@hash.update(enum.instance_variable_get(:@hash))

View File

@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
spec.description = %q{Provides a class to deal with collections of unordered, unique values}
spec.homepage = "https://github.com/ruby/set"
spec.licenses = ["Ruby", "BSD-2-Clause"]
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = spec.homepage

View File

@ -600,6 +600,10 @@ class TC_Set < Test::Unit::TestCase
ret = set.merge([2,4,6], Set[4,5,6])
assert_same(set, ret)
assert_equal(Set[1,2,3,4,5,6], set)
assert_raise(ArgumentError) {
Set[].merge(a: 1)
}
end
def test_subtract