enumerable/empty_cycles_no_parens.rb
tests/_examples/enumerable/empty_cycles_no_parens.rb in the metorex repository.
# Cycling over nothing has no elements to repeat, so its size is 0.
p [].cycle.size
p [].each_entry.cycle.size
p [1].cycle.size
# A generator yielding nothing packs that as nil.
generated = Enumerator.new do |yielder|
yielder.yield
yielder.yield 1, 2
end
p generated.to_a
# `uniq` on a cycle that stops keeps the first of each.
taken = [1, 2, 1].cycle.first 5
p taken.uniq
Output:
0
0
Infinity
[nil, [1, 2]]
[1, 2]