From: Eivind Eklund Date: 2007-11-23T17:50:20+09:00 Subject: Re: calling my framework On Nov 22, 2007 2:12 PM, Mario Ruiz wrote: > I'm developing a framework but I would like to call the classes as I was > in Java. > An example: > requiere 'myAclasses' > requiere 'myBclasses' > vA=myclass22.new() > vB=myclass55.new() > > The problem is that I don't know where are these classes and I would > like to call them something like this: > vA=myAclasses.myclass22.new() > vB=myBclasses.myclass55.new() > > Is this possible??? > How can I do it? Note that true class names has to start with an uppercase letter; I've compensated for that below. First, you can do module wrapping (namespacing): module MyAclasses class Myclass22 end end and call as MyAclasses::Myclass22.new Second, you could do this using a method that returns a class object. In other words, something like class MyAClassContainer def myclass22 return MyClass22 end end myAclasses = MyAClassContainer.new # (or any other factory method) mya = myAclasses.myclass22.new The latter technique can be useful if your hierarchy and what you want to produce change at runtime. It seems like very many levels of indirection, though, so I would think carefully of whether it is necessary. (Each level of indirection tends to make things harder to grasp/think about/debug.) Eivind.