From 7cf3b57cba587cb37a47e0266e3a7ea6f7e7fe6e Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 24 Oct 2022 07:53:52 +0900 Subject: [PATCH] mruby-set/mrb_set.rb (<=>): update definition. Set#<=> needs to be comparing sets to be subset/superset relation. --- mrbgems/mruby-set/mrblib/mrb_set.rb | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mrbgems/mruby-set/mrblib/mrb_set.rb b/mrbgems/mruby-set/mrblib/mrb_set.rb index c15f245dd..7ca7df040 100644 --- a/mrbgems/mruby-set/mrblib/mrb_set.rb +++ b/mrbgems/mruby-set/mrblib/mrb_set.rb @@ -282,16 +282,12 @@ class Set end def <=>(set) - if !set.is_a?(Set) - nil - elsif self == set - 0 - elsif self < set - -1 - elsif self > set - 1 - else - nil + return unless set.is_a?(Set) + + case size <=> set.size + when -1 then -1 if proper_subset?(set) + when +1 then +1 if proper_superset?(set) + else 0 if self.==(set) end end