[#4567] Re: What's the biggest Ruby development? — Aleksi Niemel<aleksi.niemela@...>

Dave said:

18 messages 2000/08/23
[#4568] Q's on Marshal — Robert Feldt <feldt@...> 2000/08/23

[#4580] RubyUnit testcase run for different init params? — Robert Feldt <feldt@...> 2000/08/25

[#4584] Re: RubyUnit testcase run for different init params? — Dave Thomas <Dave@...> 2000/08/25

Robert Feldt <feldt@ce.chalmers.se> writes:

[#4623] Re: RubyUnit testcase run for different init params? — Robert Feldt <feldt@...> 2000/08/28

On Sat, 26 Aug 2000, Dave Thomas wrote:

[#4652] Andy and Dave's European Tour 2000 — Dave Thomas <Dave@...>

24 messages 2000/08/30
[#4653] Re: Andy and Dave's European Tour 2000 — matz@... (Yukihiro Matsumoto) 2000/08/30

Hi,

[#4657] Ruby tutorials for newbie — Kevin Liang <kevin@...> 2000/08/30

Hi,

[ruby-talk:4688] Re: calling super from c

From: Robert Feldt <feldt@...>
Date: 2000-08-31 07:10:02 UTC
List: ruby-talk #4688
On Thu, 31 Aug 2000, Yasushi Shoji wrote:

> I asked Matz the same question.  his answer was:
> 
> 1.4 doesn't have an easy-to-use c API for 'super'.  but in Ruby
> Extention, method usually doesn't change dynamically so that you can
> call the method you want directly.
> 
> however, my stupidity made me ask him again to put rb_call_super() in
> 1.5 branch. seems current CVS still contain the function in eval.c
> 
> BTW, you need to call rb_enable_super() to enable rb_call_super().
> see eval.c
> 
Ok, thanks to all for claryfying this.

For completeness I include the wordaround I've used so far:

In Init_MyClass:

rb_define_alias( cMyClass, "super_my_method", "my_method" );
rb_define_method( cMyClass, "my_method", ext_my_method, ...);

and then in ext_my_method:

rb_funcall( self, rb_intern("super_my_method"), ... );

Regards,

Robert



In This Thread

Prev Next