From: Tietew Date: 2001-12-14T01:34:43+09:00 Subject: [ruby-list:32919] Re: rb_define_module を一回だけ呼びたい Tietew です。 On Fri, 14 Dec 2001 00:39:27 +0900 In article <1008256241.963288.6554.nullmailer@ev.netlab.jp> [[ruby-list:32918] Re: rb_define_module を一回だけ呼びたい] matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |拡張ライブラリーでモジュールを定義するのに使う rb_define_module > |に関する質問です。Ruby では、 > > どうするのが良いですかねえ。 > > Rubyにより近づけるなら rb_define_module() での上書きを止める > 方が良いでしょうし、あるいは現状のままにして、2回目以降は > rb_const_get() を使ってね、というアプローチもありえるでしょ > うね。 これ,ちょっと気になっていました。 今まで以上に拡張モジュールが書かれるようになると,同じモジュール (というかネームスペース)を共有する独立した拡張モジュールが作ら れるようになる可能性が大いにあります。 その時,rb_define_module が既存モジュールを上書きしてしまうとちょっ と困ったことになりますし,だからといって rb_const_get してね,て ことになると rb_rescue しなければならなかったりと結構面倒です。 よって,rb_define_{module,class} ではすでに同名のモジュール・ク ラスがあった場合はそれを返す,という仕様に一票。 —[ Tietew ]—————————————————————————— メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA