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

yarv-dev:922

From: SASADA Koichi <ko1 atdot.net>
Date: Sat, 18 Feb 2006 01:29:58 +0900
Subject: [yarv-dev:922] Re: open> super in define_method when called twice

 ささだです。

sheepman wrote:
> 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
> 
 色々考えてみたんですが、今の構造だと不可能だということがわかりました。
別なアプローチを考えますので、すぐには直らないかも知れません。どれくらい
優先度が高い感じですかね。

-- 
// SASADA Koichi at atdot dot net


-- 
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