Many standard classes such as Integer and Array have methods that can supply items over which a block can iterate. For example:
3.times{ |i| puts( i ) } [1,2,3].each{|i| puts(i) }
You can create your own iterator methods to provide a series of values to a block.
In the following code timesRepeat method executes a block a specified number of times.
def timesRepeat( aNum ) for i in 1..aNum do yield i# from www . ja v a 2 s . c o m end end timesRepeat( 3 ){ |i| puts("[#{i}] hello world") }
The following code created a timesRepeat2 method to iterate over an array:
def timesRepeat2( aNum, anArray ) anArray.each{ |anitem|# from w w w .ja v a 2 s.c om yield( anitem ) } end timesRepeat2( 3, ["hello","good day","how do you do"] ){ |x| puts(x) }