SyncEnumerator
, кажется, перемещен в REXML
модуль:
require 'rexml/syncenumerator'
a = [1,2,3]
b = [4,5,6]
e = REXML::SyncEnumerator.new(a, b)
e.each{|i,j| p [i, j]}
#=> [1, 4]
#=> [2, 5]
#=> [3, 6]
Кстати, просто для практики вот наивная реализация:
def sync_enum *enums
enums.map!(&:to_enum)
Enumerator.new do |yielder|
loop do
yielder.yield(enums.map(&:next))
end
end
end