add symbol style to Enumerable#inject

This commit is contained in:
Yukihiro Matsumoto
2012-10-19 21:16:18 +09:00
parent fd949663d2
commit 17278e8ca6
+7 -1
View File
@@ -199,7 +199,12 @@ module Enumerable
#
# ISO 15.3.2.2.11
def inject(*args, &block)
raise ArgumentError, "too many arguments" if args.size > 2
raise ArgumentError, "too many arguments" if args.size > 3
if Symbol === args[-1]
sym = args[-1]
block = ->(x,y){x.send(sym,y)}
args.pop
end
if args.empty?
flag = true # no initial argument
result = nil
@@ -218,6 +223,7 @@ module Enumerable
}
result
end
alias reduce inject
##
# Alias for collect