str を Ruby スクリプトとしてコンパイル・評価し、 その値を返します。
str を Ruby スクリプトとしてコンパイル・評価し、 その値を返します。
コンパイル中または評価中に例外を含む大域脱出が発生した場合、 state が NULL でなければ値が設定され Qnil を返します。
rb_eval_string_protectと同じですが,スクリプトの評価を 無名のモジュールのもとで行います。
recv に対してメソッド name を呼びだし、 メソッドの返り値を返します。プライベートメソッドも 呼びだせます。
メソッドへの引数は第四引数以降にあたえ、その数を nargs
に指定します。それら引数はすべて VALUE
でなければ
いけません。
recv に対してメソッド name を呼びだし、 メソッドの返り値を返します。プライベートメソッドも 呼びだせます。
メソッドへの引数は VALUE
の配列として第四引数にあたえ、
その長さを nargs に指定します。
初出: [ruby-dev:4064]
rb_load_protect,rb_eval_string_protect,rb_protect などで捕捉した大域脱出を再生成します。
tagには上記関数の引数で受け取ったstateを指定します。
メソッドがブロック付きで呼ばれていればQtrueを返します。
この関数はobsoleteです。rb_block_given_pを使用してください。
yield
の C 版です.val を引数にブロックを実行します.
複数の引数を与えたいときは配列に格納して渡します。
この関数を呼び出したメソッドがブロックを伴わない場合は,例外 LocalJumpError が発生します.
ブロック付きメソッド(イテレータ)呼び出しを行う関数です.
まず call_proc(data1)
を実行します。そしてその関数か
その直下のメソッドで yield
が発生すると以下が実行されます。
block_proc(VALUE block_arg, VALUE data2, VALUE self)
block_arg
はブロック引数(複数なら配列に入っている)、
data2
は rb_iterate()
に渡したもの、
self
は block_proc
呼び出し時点での self
です。
b_proc(data1)を実行し、そのときに例外が発生すればr_proc(data2) を実行します。
捕捉する例外はStandardErrorのサブクラスに限られます。
b_proc(data1)を実行し、そのときに例外が発生すればr_proc(data2) を実行します。
第5引数以降の可変長引数に捕捉したい例外クラスを指定します。引数の最後は NULLで終らなければなりません。
ensure の C 版です。まず body(data1)
を実行し、その途中で
例外や exit
が起きたとしても ensure(data2)
が確実に
実行されます ( body()
が正常終了しても実行されます)。
初出: [ruby-dev:4064]
proc(data)
実行中のあらゆる大域脱出(例外を含む)を捕捉します。
val = rb_protect(func, arg, &status); if (status != 0) { puts("大域脱出が起きた"); rb_jump_tag(status); }
require
の C 版です。feature「fname」をロードします。
参考: [ruby-list:21651]
loadの低レベルインタフェースです。Rubyスクリプ トが格納されたファイルfname をロードします。
引数wrapが、non-zeroなら無名のモジュールを生成して、ロー ドした内容をそのモジュールに閉じ込めます。閉じ込めるのは
です。グローバル変数の変更などは閉じ込められません。