Estoy usando Pry con mi aplicación Rails. Configuré binding.prydentro de un bucle en mi modelo para tratar de depurar un problema. Por ejemplo:
(1..100).each do |i|
  binding.pry
  puts i
end
Cuando escribo quit, pasa a la siguiente iteración y se detiene nuevamente. ¿Hay alguna forma de salir del ciclo para que no tenga que escribir quit100 veces?
Actualmente, la única forma en que sé cómo salir de esto es usar CTRL+ Cy reiniciar la aplicación.

exitpermitirá que el programa continúe ejecutándose.rspec. Pero CTRL-C, dos veces, lo hizo.Ctrl + Cdos veces matará la sesión de Pry, pero también matará efectivamente esa ventana de terminal: la salida posterior se interrumpe de forma tal que necesito cerrar esa pestaña de terminal y pasar a una nueva. Sin embargo!!!, no tiene este efecto agravante.Yo suelo:
Esto mantendrá el programa en ejecución, pero evitará que continúe deteniendo la ejecución. Esto es especialmente útil cuando está depurando en la consola.
fuente
ENV['DISABLE_PRY'] = nilsu controlador no en la línea de comandos O en la consola de rieles.Para salir de todo, use:
Esto debería ignorar todos los enlaces en curso.
fuente
exit-programsigue siendo probablemente la mejor opción si no desea reiniciar el servidor.exit-programpermite mantener surails serversesión, pero parece lanzar unSystemExitLa triple exclamación (
!!!) haría eso.fuente
disable-pry+ENV['DISABLE_PRY'] = nilpero intenté loexit-programque me dio un sistema Salir. Este simplemente funciona. (En rieles 3.2.22.2, palanca 0.10.3 y rubí 1.9.3)Utilizar
Para renombrar, agregue esto a su controlador
fuente
Una
binding.prydeclaración es exactamente lo mismo que un punto de interrupción en GDB. Tal punto de interrupción en GDB también se vería afectado 100 veces.Si solo desea
binding.pryque se golpee una vez, para la primera iteración del bucle, use un condicional en el mebinding.prygusta así:Luego sale de la sesión actual simplemente escribiendo
exit.fuente
Basado en las dos respuestas anteriores anteriores:
¡Gracias chicos! ¡Tus consejos me han ayudado mucho!
Solo quiero compartir un simple truco estúpido, que personalmente uso para no preocuparme por la
DISABLE_PRYvariable de entorno todo el tiempo. Agregue esta devolución de llamada al controlador baseApplicationControllerde su proyecto de forma permanente. Volvería a habilitar PRY automáticamente cada vez quedisable-pryse llame al:fuente
Usando gema
pry-movespuedes salir del bucle usandof(comando terminar)ejemplo:
fuente
presione 'q' y verá así
tipo
esta palabra servirá, si no:
fuente