diff options
| author | Jun Hiroe <[email protected]> | 2014-03-22 22:02:33 +0900 |
|---|---|---|
| committer | Jun Hiroe <[email protected]> | 2014-03-22 22:06:39 +0900 |
| commit | 77291f3531fc985065c7c4a93b319e7a44bed179 (patch) | |
| tree | c22ff4ddb798ad7b84bb9484245db442d6cbf713 /mrbgems/mruby-enum-ext/mrblib/enum.rb | |
| parent | 5027aaaf4e3d0ca8d64e15b704b20d92973db258 (diff) | |
| download | mruby-77291f3531fc985065c7c4a93b319e7a44bed179.tar.gz mruby-77291f3531fc985065c7c4a93b319e7a44bed179.zip | |
Support multiple values in Enumerable#minmax
Diffstat (limited to 'mrbgems/mruby-enum-ext/mrblib/enum.rb')
| -rw-r--r-- | mrbgems/mruby-enum-ext/mrblib/enum.rb | 8 |
1 files changed, 5 insertions, 3 deletions
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 |
