On May 6, 2008, at 10:10 AM, Pierce T. Wetter III wrote:
It is, but I have to say that I always found the super_foo syntax confusing in RubyCocoa. That's probably because I came to Ruby from ObjC, not ObjC from Ruby... I kept wishing that:
super.foo() would work. Is that possible?
Hi Pierce,
That syntax wouldn't work because calling "super" will call the method you're in from the superclass. AND it may/will return an object. In your example you are calling #foo on the result object of the super call.
But that would be the functionality I suggest yes.
About the weird syntax in RubyCocoa, I agree. But this wouldn't be a compatibility layer without supporting it's intricacies now would it :)
Hmmm... Given that this is something where Ruby/ObjC (or for that matter Java) butt heads, I wonder if there should be a better syntax? Like:
To clarify, we are not talking about introducing any new syntax or "public" API in Ruby, but to introduce a way that the RubyCocoa compatible layer can use to translate "super_foo" messages as a "super" call. The way would most probably be private (__send_super__ ?) and could be implemented as a C extension. Before (RC): def initWithName(name) super_initWithName(name) end Now (MR): def initWithName(name) super # just works end Laurent