From: Tim Pease Date: 2007-02-15T05:44:54+09:00 Subject: Re: how to do: var1 = var2.new(.....) (var2 contains classname) On 2/14/07, Luca Scaljery wrote: > Hi All > > I have a situation in which I have the name of the class in a variable > So normally I would do > song = Song.new("Bicylops", "Fleck", 260) > > But I need to do something like > var2 = "Song" > var1 = var2.new("Bicylops", "Fleck", 260) > > This doesn't work! > Any suggestions how to do this ? > You need to convert your string "Song" into a Class object. var2 = "Song" var1 = Object.const_get(var2).new("Bicyclops", "Fleck", 260) All class and module objects are stored as constants in Object. It gets a little tricky if you have a class withing a module -- "Music::Song". Then you'll have to do something like this: current = Object var2 = "Music::Song" var2.split("::").each do |str| current = current.const_get(str) end var1 = current.new( ... ) Hope this helps TwP