summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext/mrblib
diff options
context:
space:
mode:
authorJun Hiroe <[email protected]>2014-03-23 11:48:46 +0900
committerJun Hiroe <[email protected]>2014-03-23 11:48:46 +0900
commit5b31ee9a2ab463561ee8793ab6387d2ca2c6e21f (patch)
tree88f91fe5453e60608758f76787e48bc354563e3c /mrbgems/mruby-enum-ext/mrblib
parent776a680e89701e2d1ea5c6ff3e952fc4b8e72cba (diff)
downloadmruby-5b31ee9a2ab463561ee8793ab6387d2ca2c6e21f.tar.gz
mruby-5b31ee9a2ab463561ee8793ab6387d2ca2c6e21f.zip
Suppoert multiple values in Enumerable#minmax_by
Diffstat (limited to 'mrbgems/mruby-enum-ext/mrblib')
-rw-r--r--mrbgems/mruby-enum-ext/mrblib/enum.rb14
1 files changed, 7 insertions, 7 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb
index 4b0b87bcc..8a2cdd5f1 100644
--- a/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb
@@ -395,18 +395,18 @@ module Enumerable
min_cmp = nil
first = true
- self.each do |val|
+ self.each do |*val|
if first
- max = min = val
- max_cmp = min_cmp = block.call(val)
+ max = min = val.__svalue
+ max_cmp = min_cmp = block.call(*val)
first = false
else
- if (cmp = block.call(val)) > max_cmp
- max = val
+ if (cmp = block.call(*val)) > max_cmp
+ max = val.__svalue
max_cmp = cmp
end
- if (cmp = block.call(val)) < min_cmp
- min = val
+ if (cmp = block.call(*val)) < min_cmp
+ min = val.__svalue
min_cmp = cmp
end
end