Array#union
отлично работает в Ruby 2.6, но если он не в Ruby 2.5 и вы настаиваете на том, чтобы у вас был метод с именем union
, то в Ruby 2.3.7 у меня сработало следующее:
[1,2,3].union [4,5,6] # => NoMethodError: undefined method `union' for [1, 2, 3]:Array
class Array
def union(other)
self | other
end
end
[1,2,3].union [4,5,6] # => [1, 2, 3, 4, 5, 6]
Чтобы получить функциональность, сравнимую с документированным поведением 2.6 Array#union
в более ранних версиях Ruby:
class Array
def union(*others)
others.inject(self, &:|)
end
end
[1,2].union [3,4], [5] # => [1, 2, 3, 4, 5]
[10,11].union # => [10, 11]