Ruby 2.6.0 リファレンスマニュアル > 関数一覧 > rb_iterate

function rb_iterate

VALUE rb_iterate(VALUE (*call_proc)(), VALUE date1, VALUE (*block_proc)(), date2)

ブロック付きメソッド(イテレータ)呼び出しを行う関数です.

まず call_proc(data1) を実行します。そしてその関数か その直下のメソッドで yield が発生すると以下が実行されます。

block_proc(VALUE block_arg, VALUE data2, VALUE self)

block_arg はブロック引数(複数なら配列に入っている)、 data2 は rb_iterate() に渡したもの、 self は block_proc 呼び出し時点での self です。