7stud -- wrote in post #991942:
> Here's how you can use an enumerator to create an infinite array--from
> which you can print out finite chunks:
>
> e = Enumerator.new do |y|
>   (0..9).cycle do |num|
>     y << num
>   end
> end
>
>
> p e.take(15)
>
> --output:--
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4]

I just tried out (0..9).cycle {|n| puts n} in an irb session and had to 
Ctrl+C it to stop the loop. However when wrapped in a Enumerator like 
your example above, just an Enumerator::Generator object is returned. 
What happens to the infinite loop - does it still crunch the numbers out 
in the background or does it "stop" at some point? I looked at puts 
e.methods.sort
but they aren't very revealing of what's going on with the loop...

-- 
Posted via http://www.ruby-forum.com/.