Convertir string a código Ruby

26 views
Skip to first unread message

Edgar Valderrama

unread,
Nov 14, 2011, 4:27:42 PM11/14/11
to Grupo de Usuarios Ruby del Uruguay
Hola gente, estoy trabajando con Rails 3.

Deseo saber si es posible convertir una cadena en código Ruby. Me
explico:

Si tengo esto: variable = "(0..10)"
luego deseo usarlo como un Range para lograr esto: (0..10).include?(5)

Una vez vi algo parecido cuando estuve trabajando con Sinatra. No
recuerdo si es una virtud del Sinatra o es Ruby.

En cualquier caso, deseo estar seguro si es posible.

Gracias.

Gonzalo Rubio

unread,
Nov 14, 2011, 8:23:46 PM11/14/11
to ru...@googlegroups.com
Hace mucho que no toco Ruby pero probablemente lo que queres hacer es usar el constructor de Range.

por ejemplo:
inicio = 0
fin = 10

Range.new(inicio, fin).include?(5)
=> true

Supongo que eso te sirve, dada la pregunta todo apunta a que lo que necesitas es declarar dinamicamente el rango.


Opcion B: le erre y lo que queres es usar eval. El detalle es que eval de una variable en la que no tenes forma de saber que contiene es algo *muy* peligroso (porque capaz el valor del rango o lo que sea ese string viene cargado por el usuario).
En ese caso solo precisas hacer eval(variable), con el caso de tu string de arriba eval('0..10') equivale a Range.new(0, 10)

-- g


2011/11/14 Edgar Valderrama <valder...@gmail.com>

--
Grupo de Usuarios Ruby del Uruguay - http://groups.google.com/group/ruguy
Anular suscripción - ruguy-un...@googlegroups.com

Reply all
Reply to author
Forward
Message has been deleted
0 new messages