m_tbl
格納形式のメソッド (構文木) をコピーして返します。
ST_CONTINUE
を返します。
super をスーパークラスとして モジュールの「化身」クラスを作成し返します。
rb_class_instance_methods()
のイテレータブロック (通常版)。
rb_class_instance_methods()
のイテレータブロック
(private メソッド版)。
rb_class_instance_methods()
のイテレータブロック
(protected メソッド版)。
モジュール mod に定義されているメソッドに対して
順番に func
を繰り返し呼び出します。
スーパークラスを super とするクラスオブジェクトを作成し、返します。
クラス super の下位クラス klass が作成されたことを
受けて、super に対し inherited
メソッドを呼び出します。
Module#instance_methods
の実体。
モジュール mod に定義されている public メソッド名の
リストを文字列の配列で返します。
super をスーパークラスとして 新しいクラスオブジェクトを生成し、返します。
Module#private_instance_methods
の実体。
モジュール mod に定義されている private メソッド名の
リストを文字列の配列で返します。
Module#protected_instance_methods
の実体。
モジュール mod に定義されている protected メソッド名の
リストを文字列の配列で返します。
クラス klass のインスタンスメソッド old の 別名 new を定義します。
クラス klass にメソッド name と name= を定義します。 read が真のときは name を定義し、 write が真のときは name= を定義します。
クラス super の下位クラス name を作成し返します。
クラス名 id でクラス super を継承したクラスを 新しく作成する。クラス→クラス名 (定数名) の関連付けは なされるが、定数→クラスの関連付けはなされない。
クラス super の下位クラス outer::name
を作成し返します。
関数 name を定義します。
func と argc は rb_define_method
と同じです。
クラスklassのインスタンスメソッドnameを定義します。
argcはCの関数へ渡される引数の数(と形式)を決めます.
argcが0以上の時
argcで指定した値がそのメソッドの引数の数になります。 16個以上の引数は使えません,
VALUE func(VALUE self, VALUE arg1, ... VALUE argN)
argcが-1のとき
引数はCの配列として第二引数に入れて渡されます。 第一引数は配列の要素数です。
VALUE func(int argc, VALUE *argv, VALUE self)
argcが-2のとき
引数はRubyの配列に入れて渡されます。
VALUE func(VALUE self, VALUE args)
rb_scan_argsも参照
klass に public メソッド name を定義します。 その実体は関数 func です。また argc の意味は rb_define_method と同じです。
モジュール name を作成し返します。
モジュール module にモジュール関数 name を定義します。
func と argc は rb_define_method
と同じです。
名前が id である新しいモジュールを定義し、それを返します。 モジュール→名前 (定数) のリンクは確立しますが 名前→モジュールのリンクはまだ確立していません。
モジュール outer::name
を作成し返します。
クラス klass にプライベートインスタンスメソッド name を
定義します。その実体は関数 func であり、その関数がとる
引数のタイプを argc で指定します。argc のフォーマットに
ついては rb_define_method
の項を参照してください。
クラス klass に protected インスタンスメソッド name を
定義します。その実体は関数 func であり、その関数がとる
引数のタイプを argc で指定します。argc のフォーマットに
ついては rb_define_method
の項を参照してください。
obj に特異メソッド name を定義します。
メソッドの実体を func に関数ポインタで与え、その関数がとる
引数のタイプを argc に渡します。argc のフォーマットに
ついては rb_define_method
の記述を参照してください。
Module#append_features
の実体。
クラスまたはモジュール klass にモジュール module を
インクルードします。
クラス klass のインスタンス obj に特異クラスを導入し 特異クラスと obj を結びつけます。
モジュール mod にインクルードされているモジュール、 さらに mod がクラスならばスーパークラスとそれに インクルードされているモジュールを再帰的に集めて メソッド探索優先順位順に並べて返します (早く探索されるほうが前)。
モジュール mod を clone して返します。
モジュール mod を dup して返します。
モジュール mod が mod2 をインクルードしていれば真。
モジュール mod にインクルードされているモジュールの配列を返します。
新しいモジュールオブジェクトを作成し、返します。
Object#singleton_methods
の実体。
オブジェクト obj に定義されている特異メソッド名のリストを
文字列の配列で返す。
長さ argc の配列 argv を fmt に従って 解析し、第四引数以降で渡されたアドレスに書き込みます。
fmt のフォーマットは以下の通りです。
これらの指定文字はそれぞれ省略可能ですが、 必ずこの順番で現れなければいけません。
使用例
VALUE a, b, optv; rb_scan_args(argc, argv, "21", &a, &b, &optv);
対応する Ruby プログラムでの宣言
def some_method( a, b, opt = nil )
使用例 (2)
VALUE a, rest, block; rb_scan_args(argc, argv, "1*&", &a, &rest, &block);
対応する Ruby プログラムでの宣言
def some_method( a, *rest, &block )
obj に特異クラスを導入し、その特異クラスを返します。 すでに特異クラスが導入されているときはそれをそのまま返します。
obj が特異メソッドを定義できない型のオブジェクトである
ときは例外 TypeError
を発生します。
特異クラス klass にその唯一のインスタンス obj を結びつけます。
特異クラス klass を clone して返します。 klass が特異クラスでないときはただ klass を返します。
super をスーパークラスとする特異クラスを生成し、返します。
クラス klass のインスタンスメソッド name を undef します。