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()
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.)
The first seems to be the solution to my problem, I didn’t realize
before.
Even you can add more modules:
module Mod1
module Mod2
class Clas1
end Class
end
end
a=Mod1::Mod2::Clas1.new()
That’s great!!!
Thank you very much.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.