From 1a73ab904715e8450a33a9ae0d68fd69a716dc89 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Tue, 15 Jun 2021 15:14:54 -0700 Subject: [PATCH] Allow the use of any enumerable in intersect?/disjoint? --- lib/set.rb | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/set.rb b/lib/set.rb index ec4dabd..8ed6e80 100644 --- a/lib/set.rb +++ b/lib/set.rb @@ -476,16 +476,15 @@ def <=>(set) def intersect?(set) case set when Set - # nothing - when Array - Set.new(set) - else - raise ArgumentError, "value must be a set or array" - end - if size < set.size - any? { |o| set.include?(o) } - else + if size < set.size + any? { |o| set.include?(o) } + else + set.any? { |o| include?(o) } + end + when Enumerable set.any? { |o| include?(o) } + else + raise ArgumentError, "value must be enumerable" end end