Я признаю, что я даже не уверен, как работает ваш код сейчас, потому что cycle
- это метод Enumerable, и вы, похоже, не вызываете его для какого-либо перечисляемого объекта.
В любом случае, чтобы создать Enumerator, который будет циклически повторяться между двумя массивами, вы должны сделать это так:
(array1 + array2).cycle
Так, например:
array1 = 1.upto(7).to_a
array2 = 7.downto(1).to_a
sequence = (array1 + array2).cycle
sequence.take 49
# => [1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7]
Редактировать: объяснение Карла предоставило недостающую часть. Я думал о Enumerable#cycle
, но это TextHelpers#cycle
. Я думаю, что метод Enumerable на самом деле ближе к тому, что вы искали.