From: MoonWolf Date: 2003-02-25T18:44:20+09:00 Subject: [ruby-list:37175] Re: setup.rb 3.1.4 MoonWolfです。 > いや、それじゃまずいでしょう。拡張ライブラリのロード前に何か > 準備が必要な可能性があります。たとえば > という定義をするとき、MyClass だけを拡張ライブラリで定義して > MyModule は既に定義されていることを期待しているとか。あるいは > DBD みたいなもので、特定の DBM がインストールされてるときだけ > ロードして使うようになってるとか。 単独でrequireできない拡張ライブラリのことは考えてませんでした。 そういう場合、拡張ライブラリのInitMyClassでMyModuleをrb_requireすべきだと思います。 単に名前空間としてmoduleが必要な場合は、下のように書いています。 id = rb_intern("MyModule"); if (rb_const_defined(rb_cObject, id)) { mMyModule = rb_const_get(rb_cObject, id); } else { mMyModule = rb_define_module("MyModule"); } cMyClass = rb_define_class_under(mMyModule, "MyClass", rb_cObject); -- MoonWolf