From: Samantha Date: 2007-12-13T06:39:35+09:00 Subject: Re: Turning symbols into class names On Dec 12, 4:26 pm, Sebastian Hungerecker wrote: > Samantha wrote: > > Now, I need to do the same thing for those symbols... however, I need > > to somehow get Ruby to recognize those symbols as Classes. > > Nitpick: You need ruby to give you the class with a certain name. You don't > need ruby to "recognize" the symbols as something they're not. Semantics, semantics, semantics. :) > > So, let's say in my array, I have a symbol by the name of :foos, that / > > should/ correspond with the Foo class. > > > So... > > > array looks like: [:foos, :bars] > > > I need to be able to do something along the lines of: > > > array[0].to_s.capitalize.singularize.my_method_to_grab_associations > > > Well, obviously that will give me Foo, but it thinks Foo is a string. > > You make it sound as if ruby was wrong in thinking so. "Foo" *is* a string. Oh, I know that "Foo" is a string. I just needed a way to turn that string into something else. :) Of course if anyone is wrong, it's me, and not Ruby - I've just been working on something for a long amount of time which has my 'grr' factor raised a lil bit. :) > > Which leads me to my question - > > How do I get my method to give me back what I'm looking for on Foo, > > rather than complaining that Foo is a string? > > By passing the string to const_get, which will return the value of the > constant with the name "Foo" and then calling your methods on that value > (which will be the class object if Foo is a class). > [:foos, :bars].map {|name| Object.const_get(name.to_s.capitalize.singularize)} > should return [Foo, Bar], Foo and Bar being class objects. Thank you, Sebastian! That did *exactly* what I needed, which is why after banging my head incessantly on this for a while now, I decided to come here - where those who know much, much more than I, reside. -Samantha > HTH, > Sebastian > -- > NP: In Flames - Dead Eternity > Jabber: sep...@jabber.org > ICQ: 205544826