Publicidad:
La Coctelera

press any key ........

to Continue. de vuelta al desarrollo de software

17 Abril 2007

Ruby: de string a nombre de clase

Como siempre, cada vez que tengo que aprender un nuevo lenguaje los libros son utiles únicamente para empezar, unas 40 páginas de las 600 que Amazon me envió.

Programming Ruby como todos los libros de lenguajes desde el viejo The C programming languaje de Kernighan and Ritchie son únicamente aproximaciones a la descripción y/o definición de los lenguajes que supuestamente describen.

Busco en mi estanteria de recuerdos y lo encuentro, ya no es blanco, es amarillo, el viejo Kernighan. En APD lo teníamos en español e inglés, y leñe, no decian lo mismo siempre.

Entonces no había internet, ni ethernet ni otra fuente mas que los manuales y siempre en papel, bueno estaba el man, pero era peligrosísimo de creer.

Ahora con las busquedas masivas de Yahoo, Google y compañía las indefiniciones u omisiones no son tan problemáticas como en aquellos dias podian llegar a ser.

Al grano. He tardado 1 día, si 1 dia en averiguar la forma de generar un nombre de clase (ya definida) desde una string, para poder refernciar sus métodos o instanciar un objeto en run-time.

Aqui va un ejemplo para los que tengan el mismo caso. Lo curioso de Ruby es que hay 2 métodos y además en Rails crean un tercero aunque realmente sea una reutilización de uno de los de Ruby.


# Conversión dinámica de Strings (in CamelCase)
# a nombre de clase name en Ruby
#

var = "Miclase"

puts 'var es de tipo: ' , var.class
puts " "

class Miclase

def animales
"perros y gatos"
end
end

puts "Las mascotas más comunes son: " + Miclase.new.animales

#ahora utilizando una string, opcion A (Ruby)

puts "utilizando const_get las mascotas son: " + Object.const_get(var).new.animales

#ahora utilizando una string, opcion B (Ruby)

puts "utilizando module_eval las mascotas son: " + Object.module_eval(var).new.animales

#ahora utilizando una string, opcion C (unicamente Rails)

puts "utilizando constantize las mascotas son: " + var.constantize.new.animales



Lo dicho esto debería estar en el manual del lenguaje, y no en los grupos de google, donde tuve que recurrir.

servido por Juan 1 comentario compártelo

1 comentario · Escribe aquí tu comentario

Personalized Lip Butter

Personalized Lip Butter referenció

Today's Updates

[...] While surfing aimlessly today I came across this site: [...]

26 Abril 2007 | 11:31 PM

Escribe tu comentario


Sobre mí

Avatar de Juan

press any key ........

Becerril de la Sierra, España
ver perfil »
contacto »
Me parieron en Colmenar Viejo, Madrid, ESPAÑA. Llevo en esto mas de 20 años en diferentes entornos: ingenieria, sistemas, desarrollo, servicios, body shopping, venta de hardware y comercio-e. Los últimos años he desarrollado algunos portales de e-commerce en Java (J2EE) para negocios con familiares. Y ahora me dispongo a crear uno nuevo con un enfoque distinto. Vamos a crear un servicio de localización como entretenimiento y sofware para desarrollar un nuevo juego/deporte. Si atiendes regularmente a este Blog descubriras de que se trata.

Google

Fotos

Juan Blasco de la Morena todavía no ha subido ninguna foto.

¡Anímale a hacerlo!

Categorías

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera