--- Eric Mahurin <eric_mahurin / yahoo.com> wrote:
> --- Logan Capaldo <logancapaldo / gmail.com> wrote:
> > On Jul 3, 2005, at 3:31 PM, Eric Mahurin wrote:
> >
> > > Anybody know of a way to call an arbitrary method in the
> > > superclass? In the current method, you can use "super"
> to
> > call
> > > the same method of the superclass, but how do you call
> > another?
> > > The only way I can think of off hand is to alias the
> > > superclass methods to something else before creating the
> > > derived class definition. But, that seems kind of ugly.
> > It
> > > seems like there should be a way to call it directly
> using
> > > superclass or something.
>
> > self.class.superclass.
> > instance_method(:some_method).bind(self).call(*args)
>
> That is the magic I was looking for. Thanks.
>
> I think it would be nice if we had something like this in
> Object to make it easier (and faster when written in C):
>
> class Object
> def super_method(sym)
> self.class.superclass.instance_method(sym).bind(self)
> end
> def super_send(sym,*args)
> super_method(sym).call(*args)
> end
> end
Forgot the bind(self). Added it above.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com