From: Robert Klemme Date: 2012-07-02T02:00:37+09:00 Subject: Re: Interactions between 'new' and 'initialize' ? On Sun, Jul 1, 2012 at 3:15 PM, Cees Zeelenberg wrote: > Many thanks for all the contributions. You're welcome! > Let me first try to explain a little bit further why I wanted tho change > the 'new' class method. > I have recently implemented a set of JRuby bindings for the QtJambi > Library. QtJambi is the Java version of the Qt GUI framework, a > cross-platform application development toolkit. > The library consists of several hundred Java classes and Interfaces. In > JRuby these can all be accessed through the Qt:: namespace. > Classes and Modules are 'lazily' loaded when they are accessed through > the 'const_missing' method. > In this method a constant is assigned to the underlying Java Class and a > class method 'new' is defined similar to the one mentioned in one of the > postings: I haven't looked at the code, but did you consider a different solution, like not assigning the Java class to the constant but something else? For example, you can create an Object instance, define method new for it (which will create the Java class instance and do custom initialization) and probably a few others as well (e.g. superclass, ancestors, :=== etc...). That way you could create a wrapping layer without the need to fiddle with Java classes. You might have to add instance methods to get back to your wrapper "classes" from instances. > Thanks to the posting of Robert Klemme I understand better what happens > when changing a 'new' class method, but I can't say I fully understand > it, so it seems safer not to interfere. If you have further questions just let us know. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/