From: Minero Aoki <aamine / dp.u-netsurf.ne.jp>
Subject: [ruby-ext:00297] Re: クラスオブジェクトを得るには?
Date: Sat, 10 Jul 1999 17:51:29 +0900

> VALUE class_object ;
> class_object = rb_const_get( rb_cObject, rb_intern( "Array" ) ) ;

ありがとうございます。ちゃんと動きました。
実際はクラスオブジェクトが定義されているかどうかのチェックが必要ですね。
僕は以下のマクロで対処しました。 kind_of? のチェックだけで require 使
うのはあまり賢くないと思いますから。

#define KIND_OF(x,klass) (klass != Qnil && rb_obj_is_kind_of(x,klass))
#define GET_EXTERNAL_CLASS(klass) {\
        ID id = rb_intern(#klass);\
        rb_c ##klass = rb_const_defined(rb_cObject, id) ? \
                rb_const_get(rb_cObject, id) : Qnil;\
}

> klassはとりあえずrb_cObjectにしておけば大丈夫です。

ところで、いたるところに klass って出てきますが、一体どういう意味でしょ
うか? クラスオブジェクトが入る変数であるが、 class は予約語だから 
klass という変数名にしていると思うのですが。
--
Takashi Nishimoto: g96p0935 / mse.waseda.ac.jp
I love Emacs, zsh, and Linux!!
See ftp://ftp.misao.gr.jp/pub/tak/README
Key fingerprint = EE D7 1D 18 A9 42 C0 8A  63 E7 F2 AC 4D C7 83 6B