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
···
--
Aaron Turner http://synfin.net/ http://tcpreplay.synfin.net/ - Pcap editing & replay tools for Unix
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety. -- Benjamin Franklin
On Thu, Feb 28, 2008 at 11:28 AM, Aaron Turner <synfinatic@gmail.com> wrote:
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
--
Aaron Turner http://synfin.net/ http://tcpreplay.synfin.net/ - Pcap editing & replay tools for Unix
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety. -- Benjamin Franklin
That is a SUPER cool form of inject()! I usually just use is as a
builder for a hash or other container type, but having inject using
something fairly different on each iteration is grand! Why didn't I
think of that???!!!
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