Reputation: 21791
Suppose I have an array
array = [1,2,3]
I need to create such a enumerator that will return values in cyclic manner:
array.next #=> 1
array.next #=> 2
array.next #=> 3
array.next #=> 1
array.next #=> 2
...
I believe there's a neat solution for that
Upvotes: 3
Views: 205
Reputation: 114138
Array#cycle
/ Enumerable#cycle
does what you are looking for:
e = [1,2,3].cycle #=> #<Enumerator: [1, 2, 3]:cycle>
e.next #=> 1
e.next #=> 2
e.next #=> 3
e.next #=> 1
e.next #=> 2
(1..3).cycle
returns equivalent values.
Upvotes: 6