class Array
Public Instance Methods
each(*others, &block)
click to toggle source
Iterates over each element in the array, yielding the result. When no arguments are provided this behaves as the standard Array#each
. With arguments it behaves the same as Array#zip.
# File lib/enumerable/extra.rb, line 131 def each(*others, &block) if others.nil? || others.empty? old_each(&block) else zip(*others, &block) end end
Also aliased as: old_each
map(method=nil, *args, &block)
click to toggle source
Returns a new array containing the results of running block
once for every element in the array
.
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 99 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 } RUBY_VERSION.to_f >= 1.9 ? array.to_a : array else RUBY_VERSION.to_f >= 1.9 ? old_map(&block).to_a : old_map(&block) end end
map!(method=nil, *args, &block)
click to toggle source
Same as Array#map
, but modifies the receiver in place. Also note that a block is not required. If no block is given, an array of values is returned instead
# File lib/enumerable/extra.rb, line 123 def map!(method=nil, *args, &block) self.replace(map(method, *args, &block)) end
old_map(method=nil, *args, &block)
These methods are defined separately in array.c, and they are not actual aliases, so we must alias them each separately from Enumerable
.
Alias for: map