Sebastian A. Espindola wrote:
2009/10/11 Rafael Bidegain <[email protected]>:
Hola a todos
Hace un tiempo empecé un proyecto y hay una parte que requiere la
ejecución paso a paso de sentencias ruby.
Estoy cargando las sentencias ruby en un array y pretendo ejecutarlas
llamando a eval.
Si a eval le paso el array completo consigo ejecutar todas las
sentencias, pero yo necesito pasarlas una a una.
postie un programa que estoy usando para probar en http://pastebin.com/m22bd1309
si en ese programa ejecuto:
e.run
funciona correctamente (bah, obtengo los resultados que espero)
pero si yo ejecuto:
e.ejecutar_paso(0)
esa linea funciona, tiene nada mas que una asignación
e.ejecutar_paso(1)
esta linea ya no funciona, tiene un while.
Me gustaría que me orienten para poder avanzar un poco.
Rafa,
El eval falla porque solo puede evaluar bloques de codigo completos,
o sea, no
encuentra el end.
Acabo de submitear una correccion a tu pastebin donde meto el bloque
while entero
en un string e inserto el string en el array.
Lo acabo de probar y funciona joya. Tenes que hacer lo mismo con los
demas pasos.
Saludos.
Sebastian A. Espindola.
PD: Tu pseudocodigo es HORRIBLE! :P
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
el tema es si quiere hacer que las sentencias dentro del while tambien
se ejecuten paso a paso va a tener que hacer algo mas rebuscado.. me
parece.. no?
Deberias hacer que cuando encontrar un while levantes todo el bloque y
luego ejecutas las sentencias internas de a una. Si las tenes separadas
por ";" podes usar:
stringwhile.split ';'
y te va a devolver un array con las sentencias del while para que puedas
ejecutarlas de a una.
Y deberias checkaear si en cada ronda se cumple la condicion del while.
Saludos.
PD: decile NO a los parentecis.. al menos que sean totalmente
necesarios. Asi es mas ruby :P
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar