Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > generatorライブラリ > Generatorクラス > yield
yield(val) -> self[permalink][rdoc]val をジェネレータに渡します。 Generator.new() {|g| ... } のブロックの中でしか呼ぶことができません。 ジェネレータに渡された val は next などで取り出すことができます。
例:
g = Generator.new() do |g|
n = 0
loop do
g.yield n
n += 1
end
end
p g.next # => 0
p g.next # => 1
p g.next # => 2
g.rewind
p g.next # => 0