SyncEnumerator

複数の Enumerable オブジェクトを並行して yield するためのクラスです。

require 'generator'

s = SyncEnumerator.new([1,2,3], ['a', 'b', 'c'])

# Yields [1, 'a'], [2, 'b'], and [3,'c']
s.each { |row| puts row.join(', ') }

クラスメソッド

SyncEnumerator.new(*enums)

SyncEnumerator オブジェクトを生成します。 複数の Enumerable オブジェクトを与えます。 Enumerable オブジェクトのサイズは異なっていても構いません。

メソッド

each{|row| ... }

与えられた Enumerable オブジェクトのそれぞれの要素の配列を引数として ブロックを評価します。self を返します。

要素がある Enumerable オブジェクトがひとつでもあれば、評価を続けます。 要素のなくなった Enumerable オブジェクトの代わりに nil を配列の要素とします。 全ての Enumerable オブジェクトの要素がなくなるとそこで、ブロックの評価を止めます。

s = SyncEnumerator.new([1, 2, 3], ['a', 'b'], ['X'])
s.each{|arry| p arry}

# => 結果
[1, "a", "X"]
[2, "b", nil]
[3, nil, nil]
end?(i = nil)

SyncEnumerator が終わりに達している場合は真を返します。 i を与えた場合は、i 番目の Enumerable オブジェクトが終わりに 達している場合、真を返します。

length
size

与えられた Enumerable オブジェクトの数を返します。



rubyist ML