module Enumerable
Constants
- EXTRA_VERSION
The version of the enumerable-extra library.
Public Instance Methods
map(method=nil, *args, &block)
click to toggle source
Returns a new array containing the results of running method
once for every element in the enumerable object. If both arguments and a block are provided the arguments are processed first, then passed to the block.
If no method argument is provided, then it behaves as the standard MRI method.
Examples:
array = ['foo', 'bar'] # No arguments array.map(:capitalize) => ['Foo', 'Bar'] # With arguments array.map(:+, 'x') => ['foox', 'barx'] # With arguments and a block array.map(:capitalize){ |e| e + 'x' } => ['Foox', 'Barx']
Note that for 1.9.x users, Enumerator objects are converted explicitly back into arrays.
# File lib/enumerable/extra.rb, line 42 def map(method=nil, *args, &block) if method array = [] method = method.to_sym unless method.is_a?(Symbol) each{ |obj| temp = obj.send(method, *args) if block array << block.call(temp) else array << temp end } # Convert enumerators back to arrays for 1.9.x RUBY_VERSION.to_f >= 1.9 ? array.to_a : array else RUBY_VERSION.to_f ? old_map(&block).to_a : old_map(&block) end end
sum(total = 0)
click to toggle source
Returns the numeric total of the elements of enum
, using total
as an accumulator (0 by default). Raises an error if any of the elements are non-numeric.
# File lib/enumerable/extra.rb, line 13 def sum(total = 0) each{ |val| total += val } total end