(まだ) メタクラスを持たないクラスを作成します。
三つのメタオブジェクト Object
Module
Class
を
作成するのに使います。
obj が Array
でない場合は to_a を使って
Array
に変換します。
Class#allocate
の実体。
Class#initialize
の実体。
Class#new
の実体。
特異クラスや化身クラス (T_ICLASS) を飛ばして cl の スーパークラスを辿り、Ruby レベルに露出してもよいクラスを返します。
例:
rb_class_real(RBASIC(klass)->super)
rb_obj_class(obj) は、obj のクラスを返す汎用の関数(Object#type と 同じ)だが、obj が Qtrue などでない RBasic 構造のものであることが わかっているなら
rb_class_real(RBASIC(obj)->klass)
でも良い。(が、やはり rb_obj_class(obj) を使う方が無難だろう)
オブジェクトvalをクラスtypeのインスタンスに変換します。 変換には、val.methodの戻り値が使われます。
valがもともとtypeクラスのインスタンスならvalを そのまま返します。
obj1.equal? obj2
ならば Qtrue
、
そうでないならば Qfalse
。
obj1 == obj2
ならば Qtrue
、
そうでないならば Qfalse
。
obj.inspect
の実体。
obj が Ruby の整数でない場合は to_i を使って
Integer
に変換します。
任意の Numeric のオブジェクトを double に変換します。
klass のインスタンスを作成する。
Object#class
の実体です。
Object#clone
の実体です。
Object#dup
の実体です。
obj1 と obj2 が同一のオブジェクトなら真。
obj.freeze
obj.frozen?
Object#id
の実体。
Object#inspect
の実体。
obj がクラス klass のインスタンスならば真。
obj がクラス klass およびそのサブクラスの インスタンスのとき真。
Object#methods
の実体。
Object#private_methods
の実体。
Object#protected_methods
の実体。
obj.taint
obj.tainted?
obj.untaint
strl を C の文字列に変換します。第二引数も与えると
*len にバイト長を書き込みます。str が String
でない場合は to_str での変換を試みます。
Kernel#String
の実体。
val を文字列に変換します。
String
・Fixnum
・Symbol
を ID
に変換します。
val を to_int メソッドを使って Ruby の整数に変換します。
Qtrue
を返します。