Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
String to Class
Roberto Decurnex Gorosito
2/4/2008 7:22:00 PM
[Note: parts of this message were removed to make it a legal post.]
Is it possible to convert a String into a Class id?
Something like 'Array'.to_class.new
2 Answers
Wolfgang Nádasi-donner
2/4/2008 7:30:00 PM
0
Roberto Eduardo Decurnex Gorosito wrote:
> Is it possible to convert a String into a Class id?
>
> Something like 'Array'.to_class.new
Object.const_get("Array").new
Wolfgang Nádasi-Donner
--
Posted via
http://www.ruby-...
.
Rob Biedenharn
2/4/2008 9:13:00 PM
0
On Feb 4, 2008, at 2:30 PM, Wolfgang N=E1dasi-Donner wrote:
> Roberto Eduardo Decurnex Gorosito wrote:
>> Is it possible to convert a String into a Class id?
>>
>> Something like 'Array'.to_class.new
>
> Object.const_get("Array").new
>
> Wolfgang N=E1dasi-Donner
Or more generally,
# 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
Also, you can see how ActiveSupport does it for Rails:
# File vendor/rails/activesupport/lib/active_support/inflector.rb, =20
line 245
245: def constantize(camel_cased_word)
246: unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =3D~ =
camel_cased_word
247: raise NameError, "#{camel_cased_word.inspect} is not a valid =20=
constant name!"
248: end
249:
250: Object.module_eval("::#{$1}", __FILE__, __LINE__)
251: end
-Rob
Rob Biedenharn
http://agileconsult...
Rob@AgileConsultingLLC.com
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
String to Class
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password