On Apr 1, 2009, at 9:32 AM, Gregory Brown wrote:

> On Wed, Apr 1, 2009 at 9:14 AM, Paganoni <noway / fakenullvoid.com>  
> wrote:
>> Hi, well subject is self explanatory...
>>
>> Seems a bit to verbose for me but I don't know any other solution  
>> to convert
>> a string containing a class name to a constant of that class name...
>> Excepted rails way : task_class.camelize.constantize which is  
>> verbose too...
>
>>> Object.const_get("String")
> => String
>
> -greg
>
> -- 
> BOOK:  http://rubybestpractices.com
> TECH: http://blog.majesticseacreature.com
> NON-TECH: http://metametta.blogspot.com

Or dealing with things like Admin::User or Net::HTTP

   # from Jim Weirich (based on email correspondence)
   def constantize(camel_cased_word)
     camel_cased_word.
       sub(/^::/,'').
       split("::").
       inject(Object) { |scope, name| scope.const_get(name) }
   end

It may be more verbose, but it is much safer that plain 'ole eval()

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com