Neu: Rails Schulungen in Deutschland vom Autor dieses Buches.div class="para">Die Klasse Range repräsentiert einen Interval. Start- und Endpunkt des Intervals wird zwischen normalen Klammern mit zwei Punkten in der Mitte definiert. Nachfolgend ein Beispiel, in dem wir einen Range wie einen Iterator mit each benutzen:
stefan@swmbp 0 1.9.2-p0 ~$ irb
1.9.3p194 > (0..3)
 => 0..3 
1.9.3p194 > (0..3).class
 => Range 
1.9.3p194 > (0..3).each do |i|
1.9.3p194 >     puts i
1.9.3p194 ?>  end
0
1
2
3
 => 0..3 
1.9.3p194 > 

Mit der Methode to_a kann aus einem Range ein Array generiert werden:
1.9.3p194 > (0..3).to_a
 => [0, 1, 2, 3] 
1.9.3p194 >
Ein Range kann man aus Objekten jeden Typs generieren. Wichtig ist nur, dass die Objekte mit <=> vergleichbar sind und die Methode succ zum Hochzählen auf den nächsten Wert benutzen. So können Sie mit Range auch Buchstaben repräsentieren:
1.9.3p194 > ('a'..'h').to_a
 => ["a", "b", "c", "d", "e", "f", "g", "h"] 
1.9.3p194 > 
Als alternative Schreibweise werden Sie manchmal auf Range.new() stoßen. Dann wird der Start- und Endpunkt nicht mit zwei Punkten, sondern mit einem Komma abgetrennt. Das sieht dann so aus:
1.9.3p194 > (0..3) == Range.new(0,3)
 => true 
1.9.3p194 > exit
stefan@swmbp 0 1.9.3p194 ~$ 

Autor

Stefan Wintermeyer