Hola lista
Estoy desarrollando una tarea rake y bueno es caso es que tarda un poco
entonces para que no parezca bloqueado queria que fueran saliento
puntos,
para ver que algo se mueve, pero elproblema es que me salen todos de
golpe
cuando acaba.
Existe algo en ruby tipo el doEvents de Visual Basic? algo que diga
tomate
un respiro para pintar el print
peras = Pera.find :all
peras.each do |pera|
pera.nomnbre= “nombre”
pera.save
print “.”
end
Con puts en vez de print funciona pero quiero los puntos sin salto de
linea
hay otro comando parecido a print que me sirva
Gracias, me encanta esta lista siempre aprendo cosas interesantes
Jorge G.
Desarrollador Web Freelance
Creo que creando dos hilos. Uno que haga el save y otro el put. Y que se
vayan alternando. Es una idea a lo loco, seguro que recibes una solución
mucho más rápida y viable. pero si no es asà mirate algún tutorial que
hable
de threads. Aquà te dejo un ejemplo:
first = Thread.new() do
myindex = 0
while(myindex < 10):
puts “Thread One!”
sleep 3
myindex += 1
end
end
second = Thread.new() do
myindex2 = 0
while(myindex2 < 5):
puts “Thread Two!”
sleep 5
myindex2 += 1
end
end
third = Thread.new() do
myindex3 = 0
while(myindex3 < 2):
puts “Thread Three!”
sleep 10
myindex3 += 1
end
end
first.join()
second.join()
third.join()
→ Thread One!
→ Thread Two!
→ Thread One!
Este código lo he sacado de este tutorial de Ruby [1] que en mi opinión
está
muy bien
[1] http://www.humblelittlerubybook.com/book/
2009/2/20 xurde dix [email protected]:
peras = Pera.find :all
Gracias, me encanta esta lista siempre aprendo cosas interesantes
Jorge G.
Desarrollador Web Freelance
Para no liarte con hilos puedes probar si un $stdout.flush después del
print te funciona.
Suerte.
Muchas gracias por las dos estupendas respuestas
Me quedo con $stdout.flush que me soluciona el problema actual
Tambien me parece muy interesante el tema de los Thread, gracias por el
tuturial
El 20 de febrero de 2009 11:00, Daniel R. Troitiño <
[email protected]> escribió:
Por completar. Como no sabÃa como funcionaba la solución de Daniel, la
he
googleado, y con esto me ha quedado claro:
you can flush the output as soon as you have printed the prompt.
It tells the standard output device (an object named STDOUT), “don’t
wait;
display what you have in your buffer right now.”
Y mucho más claro me ha quedado en el caso de este link [1] en el que
necesitan escribir lo que sale de un bucle según va saliendo, pero
además lo
quieren ir guardando en un archivo.
Flush es nuestro amigo
[1]
http://codeidol.com/other/rubyckbk/Files-and-Directories/Writing-to-a-File/
2009/2/20 xurde dix [email protected]
Puedes mirarte como lo hace Paperclip a la hora de regenerar archivos
desde las rake task.
2009/2/20 Andrés gutiérrez [email protected]: