From: matz@... (Yukihiro Matsumoto) Date: 1997-08-22T13:51:27+09:00 Subject: [ruby-dev:212] Re: Class#eval [Re: ftplib.rb revision 1.4] まつもと ゆきひろです In message "[ruby-dev:211] Re: Class#eval [Re: ftplib.rb revision 1.4]" on 97/08/22, 石塚圭樹 writes: |けいじゅ@日本ラショナルです. |>それも恐いですし,それにもともとの目的である「eval関数と互換 |>の機能を呼び出したい」が実現できないと意味が無いので. | |それは, Class#evalが関数的に呼ばれた場合, Object#evalを同じ動作を行っ |て欲しいってことですね? 方法はどうでも良いんです.なんらかの方法でObject#evalを同じ 動作を実現できないとまずいんです(でしょ). で,その方法として * 第2引数のbindingを指定する * 名前を変える とかを検討しているのだと思ったんですけど. |表現が悪かったですね. Foo.eval "def foo..." を行うとどのクラスに登録さ |れるかをいいたかったんです. | |* class Foo | eval "def foo.." | |は Foo#foo の定義, | |* class Foo | Bar.eval "def foo..." | |は Bar#foo の定義, | |* class Foo | eval "def foo ...", binding | class Foo | Bar.eval "def foo ...", binding | |は, bindingのコンテキストでのカレントクラスでの定義 | |になっているんですよね? それならば,そうです. まつもと ゆきひろ /:|)