From: "Bradley, Todd" Date: 2004-12-04T04:47:06+09:00 Subject: Re: how to create an object of a class you don't know yet Thanks for all the suggestions, everyone. I had guessed that there must be an Object method to do this (const_get), but I couldn't find it listed in Pickaxe II's reference to the Object class. Todd. > -----Original Message----- > From: Bradley, Todd > Sent: Friday, December 03, 2004 11:45 AM > To: ruby-talk@ruby-lang.org > Subject: how to create an object of a class you don't know yet > > Hi, I'm just now getting into Ruby's OO-ness, and could use > some advice. > I'm trying to create an object, but which specific class needs to be > determined at runtime. I figured out how to do this by creating a > string and executing it using the "eval" command, but I know > there must > be an easier way. My first guess was to do something like > #{answer}.new > but that didn't work. > > > Here's my code: > > > class Foo > def method1 > end > end > > class Bar > def method2 > end > end > > # Pretend this was determined at runtime > answer = "Foo" > > > # There must be a better way of doing this: > > myobj = Object.new # Needs to exist in this scope > mystring = "myobj = #{answer}.new" > > eval mystring > > puts "I just created a #{myobj.class} object." > > > > > Any advice is appreciated. Thanks in advance! > > > Todd. >