[MacRuby-devel] Objective-C class +initialize in MacRuby
Caio Chassot
lists at caiochassot.com
Sun Oct 10 14:44:34 PDT 2010
On 2010-10-10, at 17:24 , Laurent Sansonetti wrote:
>
> Indeed, +initialize won't be called for pure-Ruby classes. I recommend to use the Ruby idiom here, it's simpler :)
So, the problem I'm seeing is what I alluded to earlier: writing stuff in the class body is more like +load than +initialize. Especially, not all classes may be loaded at that point.
So I came up with this: http://gist.github.com/619585
Would it make sense to try to have something official for this functionality?
In the process I noticed a few things:
1. You may see I opted for using _initialize instead of initialize for the method name. It turns out every ruby class in MacRuby already respond_to?(:initialize). That's not true in MRI. Is this a necessity of the Objective-C implementation?
2. It appears that the #singleton_class method does not exist in MacRuby. Oversight? File a ticket?
3. I initially tried implementing Object.inherited as:
class Object
@inherited = []
def self.inherited(m)
@inherited << m
end
end
This works in a standalone MacRuby file. In the context of an application, @inherited seems to be lost, and I get an error trying to call << on nil. What's going on here?
More information about the MacRuby-devel
mailing list