From: ttate@... Date: 1998-05-08T02:04:29+09:00 Subject: [ruby-dev:2579] Re: how to check if ruby method is defined 立石@JAISTです。 たびたびすいません。 kikutani@gol.comさん(05月08日00時): kikutani>>class A kikutani>> def method_a(line) kikutani>> end kikutani>> kikutani>> def method_b kikutani>> ext_method(self, line) kikutani>> end kikutani>>end kikutani>> kikutani>>なんてかんじで拡張モジュールを呼びます。そっちはこんなかんじ。 kikutani>> kikutani>>VALUE argv[1]; kikutani>>argv[0] = str_new2(line); kikutani>>rb_funcall2(self, rb_intern("method_a"), 1, argv); kikutani>> kikutani>>ここまではいいのですが、ext_method はいろんなところから呼ばれる kikutani>>可能性があり、そこでは method_a は未定義かもしれません。 CLASS_OFは検討違いでした。すいません。 メソッドが定義されているかどうかでしたね? rb_funcall2の中でそのチェックをしてるから、そこまで 関与しなくてもいいと思います。 また、こういう状況は普通おこらないように感じるの ですが、きくたにさんはどういうクラスを作っているのか 参考までに聞かせていただけないでしょうか? ;; 本題のメソッドが定義されてるかどうかを調べる ;; 簡単なマクロは用意されているのでしょうか? ---------------------------------------------- Name Takaaki Tateishi E-Mail ttate@jaist.ac.jp tateishi@pluto.dti.ne.jp URL http://www.pluto.dti.ne.jp/~tateishi/ Org School of Information Science Japan Advanced Institute of Science and Technology (JAIST)