builtins/loop_enumerator_parens.rb

tests/_examples/builtins/loop_enumerator_parens.rb in the metorex repository.

counted = 0
result = loop do
  counted += 1
  break counted if counted >= 3
end
puts(result)

generated = Enumerator.new do |yielder|
  yielder << 1
  yielder << 2
  :finished
end

puts(generated.next)
puts(generated.next)
puts(loop { generated.next })

stopped = loop do
  raise StopIteration
end
puts(stopped.inspect)

endless = loop
puts(endless.instance_of?(Enumerator))
puts(endless.size)

seen = 0
answer = endless.each do |*args|
  seen += 1
  break seen if seen >= 4
end
puts(answer)

pairs = Enumerator.new do |yielder|
  yielder.yield(1, 2)
  yielder.yield(3, 4)
end
p(pairs.to_a)

Output:

3
1
2
finished
nil
true
Infinity
4
[[1, 2], [3, 4]]