Dingding Ye
2/29/2008 12:36:00 AM
[Note: parts of this message were removed to make it a legal post.]
cool~ I haven't thought it before.
Rails have its owner ext for this function classed Inflector.constantize.
And it's implementation is used module_eval.
So it can also be :
obj = Object.module_eval(foo).new
On Fri, Feb 29, 2008 at 1:47 AM, Stefano Crocco <stefano.crocco@alice.it>
wrote:
> Alle Thursday 28 February 2008, Aaron Turner ha scritto:
> > I want to be able to take a class name stored in a variable as a string
> > like:
> >
> > foo = "Foo::Bar"
> >
> > and convert that to the class Foo::Bar so that I can call .new(), etc:
> >
> > obj = foo.new
> >
> > I know I can just do:
> >
> > foo = Foo::Bar
> >
> > but that doesn't solve my problem which is to accept the class name as
> > an argument on the command line from the user.
> >
> > Thanks,
> > Aaron
>
> foo.split('::').inject(Kernel){|res, i| res.const_get(i)}
>
> Stefano
>
>
>