やすしです。

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-ext:00938] Re: how to call 'super' in C level?
Date: Thu, 02 Mar 2000 12:20:42 +0900

> 「スーパークラスのメソッドを実現している関数を直接呼ぶ」とい
> うのが現状可能な方法です。

う‥、superみたいな便利なものはないのですか‥‥。

c levelだと methodの途中に呼ばれる可能性があるからでしょうか?

ちょっと考えたんですけど

Class Base
  def hoge
    print "This is Base\n"
  end
end

Class A < Base end

Class B < A
  def hoge
    print "This is B\n"
    super
  end
end

と言う風に B < A < Base と class達があって

B.new.hoge とすると superはちゃんと Base#hogeを探してくれますよね?

これを C levelでやるとなると class Bの hogeの最後で rb_mod_ancestors()を
使って arrayをとりだして、下から順番に hogeが defineされてるか探していく
しか方法がないと思うのですが当ってますか?
--
           yashi