From ebb337b132a0c6781ce42df41516e12f146be3d4 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 22 Mar 2014 16:47:56 +0900 Subject: fix multiple value support of max_by; ref #1912 --- mrbgems/mruby-enum-ext/mrblib/enum.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb index 8ce02177b..586479a21 100644 --- a/mrbgems/mruby-enum-ext/mrblib/enum.rb +++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb @@ -278,7 +278,7 @@ module Enumerable # # If no block is given, an enumerator is returned instead. # - # %w[albatross dog horse].max_by { |x| x.length } #=> "albatross" + # %w[albatross dog horse].max_by {|x| x.length } #=> "albatross" def max_by(&block) return to_enum :max_by unless block_given? @@ -290,16 +290,15 @@ module Enumerable self.each do |*val| if first max = val.__svalue - max_cmp = block.call(val.__svalue) + max_cmp = block.call(*val) first = false else - if cmp = block.call(val.__svalue) > max_cmp + if cmp = block.call(*val) > max_cmp max = val.__svalue max_cmp = cmp end end end - max end end -- cgit v1.2.3