summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext/mrblib/enum.rb
diff options
context:
space:
mode:
authorJun Hiroe <[email protected]>2014-03-22 22:02:33 +0900
committerJun Hiroe <[email protected]>2014-03-22 22:06:39 +0900
commit77291f3531fc985065c7c4a93b319e7a44bed179 (patch)
treec22ff4ddb798ad7b84bb9484245db442d6cbf713 /mrbgems/mruby-enum-ext/mrblib/enum.rb
parent5027aaaf4e3d0ca8d64e15b704b20d92973db258 (diff)
downloadmruby-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.rb8
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