Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library tracer > class Tracer > add_filter
add_filter(proc)
add_filter {|event, file, line, id, binding, klass| .... }
トレース出力するかどうかを決定するフィルタを追加します。 何もフィルタを与えない場合はすべての行についてトレース情報が出力されます。 与えられた手続き(ブロックまたはProcオブジェクト)が真を返せば トレースは出力されます。
フィルタは複数追加でき、 そのうち一つでも偽を返すとトレースの出力は抑制される。
フィルタ手続きは引数として event, file, line, id, binding, klass の 6 つをとります。 Kernel.#set_trace_func で指定するものとほぼ同じです。
イベントを表す文字列。 以下の種類がある。カッコ内は tracer の出力での表記。
* line (-) ある行を実行 * call (>) メソッド呼び出し * return (<) メソッドからのリターン * class (C) クラスコンテキストに入った * end (E) クラスコンテキストから出た * raise 例外が発生した * c-call Cで記述されたメソッドが呼ばれた * c-return Cで記述されたメソッドからreturn
現在処理しているファイルの名前
現在処理している行番号
最後に呼び出されたメソッドのメソッド名(のシンボル) そのようなメソッドがなければ0になる。
現在のコンテキスト
現在呼び出されているメソッドのクラスオブジェクト。