On 25.09.2012 02:17, shaw.c
...@gmail.com wrote:
> Hi, I'm super new in Ruby World, and got in trouble with that:
> how do I call the 'new' method of a class I don't know the name? The
> name of the class is stored in a string.
> something like:
> arg1 = "RADIUS" codec = arg1.new
> I would like to create an instance of whatever class name is stored
> in arg1 string.
The usual idiom which also works with nested names is like this:
cls = name.split('::').inject(Object) {|cl, part| cl.const_get part}
Now you can do
obj = cls.new
In your case it's sufficient to do
cls = Object.const_get(arg1) # "RADIUS"
codec = cls.new
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/