Estou usando o Pry com meu aplicativo Rails. Defino binding.pry
dentro de um loop no meu modelo para tentar depurar um problema. Por exemplo:
(1..100).each do |i|
binding.pry
puts i
end
Quando digito quit
, ele passa para a próxima iteração e para novamente. Existe uma maneira de sair do loop para que eu não precise digitar quit
100 vezes?
Atualmente, a única maneira de saber como sair disso é usar CTRL+ Ce reiniciar o aplicativo.
exit
permitirá que o programa continue em execução.rspec
. Mas o CTRL-C, duas vezes, funcionou.Ctrl + C
duas vezes matará a sessão do Pry, mas também matará efetivamente a janela do terminal: a saída subsequente é interrompida, de modo que eu preciso fechar a guia do terminal e passar para uma nova. No entanto!!!
, não tem esse efeito agravante.Eu uso:
Isso manterá o programa em execução, mas impedirá que continue a interromper a execução. Isso é especialmente útil quando você está depurando no console.
fonte
ENV['DISABLE_PRY'] = nil
no seu controlador, não na linha de comando OU no console de rails.Para sair de tudo, use:
Isso deve ignorar todas as ligações em andamento.
fonte
exit-program
ainda é provavelmente a melhor opção se você não deseja reiniciar o servidor.exit-program
você pode manter suarails server
sessão, mas parece jogar umSystemExit
A exclamação tripla (
!!!
) faria isso.fonte
disable-pry
+ENV['DISABLE_PRY'] = nil
combo, mas tentei oexit-program
que me deu um sistemaSair. Este apenas funciona. (Nos trilhos 3.2.22.2, alavanca 0.10.3 e ruby 1.9.3)Usar
Para desativar, adicione isso ao seu controlador
fonte
Uma
binding.pry
instrução é exatamente igual a um ponto de interrupção no GDB. Esse ponto de interrupção no GDB também seria atingido 100 vezes.Se você deseja que o
binding.pry
hit seja atingido apenas uma vez, na primeira iteração do loop, use uma condicional da seguintebinding.pry
maneira:Você sai da sessão atual digitando apenas
exit
.fonte
Com base nas duas respostas anteriores acima:
Obrigado pessoal! Seus conselhos me ajudaram muito!
Eu só quero compartilhar um truque simples e estúpido, que eu pessoalmente uso para não me preocupar com a
DISABLE_PRY
variável de ambiente o tempo todo. Adicione esse retorno de chamada ao controlador baseApplicationController
do seu projeto permanentemente. Ele reativaria automaticamente o PRY sempre quedisable-pry
for chamado:fonte
Usando gem,
pry-moves
você pode sair do loop usandof
(comando de acabamento)exemplo:
fonte
pressione 'q' e você verá assim
tipo
esta palavra fará, se não:
fonte