class Array

Public Instance Methods

collect(method=nil, *args, &block)

Reset the aliases

Also aliased as: old_collect
Alias for: map
collect!(method=nil, *args, &block)
Also aliased as: old_collect!
Alias for: map!
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
Also aliased as: old_map, collect
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
Also aliased as: old_map!, collect!
old_collect(method=nil, *args, &block)
Alias for: collect
old_collect!(method=nil, *args, &block)
Alias for: collect!
old_each(*others, &block)
Alias for: each
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
old_map!(method=nil, *args, &block)
Alias for: map!