Every string, array, and hash in Ruby is an object, and every object of these types has a set of built in methods. Let's take a simple array of names, and see what we can do with the each method. First we create an array object by assigning the array to stooges
>> stooges = ['Larry', 'Curly', 'Moe']
Next we'll call the each method and create a small block of code to process the results.
>> stooges.each { |stooge| print stooge + "\n" }
This will produce the following output:
Larry
Curly
Moe
The each method takes two arguments - an element and a block. The element, contained within the pipes, is like a placeholder. Whatever you put in the pipes will be used in the block to represent each element of the array in turn. The block is the line of code that is executed on each of the array items, and is handed the element to process.
You can easily extend the code block to multiple lines by using do to define a larger block:
>> stuff.each do |thing|
.. print thing
.. print "\n"
.. end
This is exactly the same as the first example, except that the block is defined as everything after the element (in pipes) and before the end statement.
