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

Responder a