method

collect

Importance_4
Ruby latest stable (v1_8_7_72) - 4 notes - Class: Array
collect() public

Invokes block once for each element of self. Creates a new array containing the values returned by the block. See also Enumerable#collect.

   a = [ "a", "b", "c", "d" ]
   a.collect {|x| x + "!" }   #=> ["a!", "b!", "c!", "d!"]
   a                          #=> ["a", "b", "c", "d"]
Show source
Register or log in to add new notes.
March 18, 2010
0 thanks

collect_with_index

Use Object#enum_for if you need to collect with index:

  require 'enumerator'

  ['a', 'b', 'c'].enum_for(:each_with_index).collect do |item, index|
    "#{index}: #{item}"
  end

See also: Enumerable#each_with_index

April 23, 2009
4 thanks

Handy shorthand for array manipulation

You may write something like this:

  >> ['a', 'b', 'c'].collect{|letter| letter.capitalize}
  => ["A", "B", "C"]

But it looks so much nicer this way:

  >> ['a', 'b', 'c'].collect(&:capitalize)
  => ["A", "B", "C"]
August 20, 2009
3 thanks

Symbol#to_proc

@tadman - or simply defining:

 class Symbol
   def to_proc
     proc { |obj, *args| obj.send(self, *args) }
   end
 end
April 23, 2009
2 thanks

Rails and Ruby 1.8.7 Extensions

Note that the use of Symbol#to_proc requires either Rails or Ruby 1.8.7. Prior versions will show:

    ['a', 'b', 'c'].collect(&:capitalize)
     #  => TypeError: wrong argument type Symbol (expected Proc)