要約
複数の 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(', ') }
目次
継承しているメソッド
- Enumerableから継承しているメソッド
-
- all?
- any?
- collect
- count
- cycle
- detect
- drop
- drop_while
- each_cons
- each_slice
- each_with_index
- entries
- enum_cons
- enum_slice
- enum_with_index
- find
- find_all
- find_index
- first
- grep
- group_by
- include?
- inject
- map
- max
- max_by
- member?
- min
- min_by
- minmax
- minmax_by
- none?
- one?
- partition
- reduce
- reject
- reverse_each
- select
- sort
- sort_by
- take
- take_while
- to_a
- zip
特異メソッド
new(*enums) -> SyncEnumerator[permalink][rdoc]-
SyncEnumerator オブジェクトを生成します。
複数の Enumerable オブジェクトを与えます。 Enumerable オブジェクトのサイズは異なっていても構いません。
インスタンスメソッド
each {|elem| ... } -> self[permalink][rdoc]-
与えられた 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) -> bool[permalink][rdoc]-
SyncEnumerator が終わりに達している場合は真を返します。
i を与えた場合は、i 番目の Enumerable オブジェクトが終わりに達している場合、真を返します。
length -> Integer[permalink][rdoc]size -> Integer-
与えられた Enumerable オブジェクトの数を返します。