[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:914

From: sheepman <sheepman sheepman.sakura.ne.jp>
Date: Fri, 17 Feb 2006 19:24:08 +0900
Subject: [yarv-dev:914] open> super in define_method when called twice

こんばんは、sheepman です。

On Mon, 13 Feb 2006 23:08:37 +0900
SASADA Koichi <ko1 atdot.net> wrote:

> 
>  ウワーン、こんなことする奴が悪いんだー、ということで無視しようかと思っ
> たんですが、とりあえず対応してみました。ふつーの super の効率がちょっと
> 落ちてますが、まぁ、微々たるもんでしょう。
> 

memoize がまだうまく動きません。
define_method を2回呼んだ時の動作が変です。

$ cat t.rb
class A
  def hoge
    :hoge
  end

  def foo
    :foo
  end
end

class B < A
  def memoize(name)
    B.instance_eval do
      define_method(name) do
        super
      end
    end
  end
end

b = B.new
b.memoize(:hoge)
b.memoize(:foo)
p b.hoge

$ ruby-1.9 -v t.rb
ruby 1.9.0 (2006-02-15) [i686-linux]
:hoge

$ ./miniruby -v t.rb ruby 1.9.0 (2006-02-14) [i686-linux]
YARVCore 0.3.3 (rev: 435) [opts: ]
:foo

-- 
sheepman / TAMURA Takashi
sheepman sheepman.sakura.ne.jp http://sheepman.parfait.ne.jp/

-- 
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       859 2006-02-13 21:53 [sheepman sheepman.sa] open> super in define_method            
       861 2006-02-13 23:08 ┗[ko1 atdot.net       ] fixed> Re: open> super in define_method
->     914 2006-02-17 19:24  ┗[sheepman sheepman.sa] open> super in define_method when called twice
       922 2006-02-18 01:29   ┗[ko1 atdot.net       ]                                   
       923 2006-02-18 02:50    ┗[ko1 atdot.net       ] fixed> Re: open> super in define_method when called twice