From 77291f3531fc985065c7c4a93b319e7a44bed179 Mon Sep 17 00:00:00 2001 From: Jun Hiroe Date: Sat, 22 Mar 2014 22:02:33 +0900 Subject: Support multiple values in Enumerable#minmax --- mrbgems/mruby-enum-ext/mrblib/enum.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'mrbgems/mruby-enum-ext') diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb index 2f6c4dbbc..873de1fbc 100644 --- a/mrbgems/mruby-enum-ext/mrblib/enum.rb +++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb @@ -355,16 +355,18 @@ module Enumerable min = nil first = true - self.each do |val| + self.each do |*val| if first + val = val.__svalue max = val min = val first = false else if block - max = val if block.call(val, max) > 0 - min = val if block.call(val, min) < 0 + max = val.__svalue if block.call(*val, max) > 0 + min = val.__svalue if block.call(*val, min) < 0 else + val = val.__svalue max = val if (val <=> max) > 0 min = val if (val <=> min) < 0 end -- cgit v1.2.3