J'utilise Pry avec mon application Rails. J'ai mis à l' binding.pry
intérieur d'une boucle dans mon modèle pour essayer de déboguer un problème. Par exemple:
(1..100).each do |i|
binding.pry
puts i
end
Lorsque je tape quit
, il passe à l'itération suivante et s'arrête à nouveau. Existe-t-il un moyen de sortir de la boucle pour ne pas avoir à taper quit
100 fois?
Actuellement, la seule façon de m'en sortir est d'utiliser CTRL+ Cet de redémarrer l'application.
exit
permettra au programme de continuer à fonctionner.rspec
. Mais CTRL-C, deux fois, l'a fait.Ctrl + C
deux fois pour tuer la session Pry, mais aussi pour tuer cette fenêtre de terminal: la sortie suivante est défectueuse de sorte que je dois fermer cet onglet de terminal et passer à un nouveau. N'a!!!
cependant pas cet effet aggravant.J'utilise:
Cela maintiendra le programme en cours d'exécution, mais l'empêchera de continuer à arrêter l'exécution. Cela est particulièrement utile lorsque vous déboguez dans la console.
la source
ENV['DISABLE_PRY'] = nil
votre contrôleur et non pas en ligne de commande OU sur la console des rails.Pour tout quitter, utilisez:
Cela doit ignorer toutes les liaisons en cours.
la source
exit-program
est probablement la meilleure option si vous ne souhaitez pas redémarrer le serveur.exit-program
vous permet de maintenir votrerails server
session mais semble jeter unSystemExit
Une triple exclamation (
!!!
) ferait cela.la source
disable-pry
+ENV['DISABLE_PRY'] = nil
mais j'ai essayéexit-program
ce qui m'a donné une sortie système. Celui-ci fonctionne juste. (Sur rails 3.2.22.2, levier 0.10.3 et rubis 1.9.3)Utilisation
Pour renable, ajoutez ceci à votre contrôleur
la source
Une
binding.pry
instruction est exactement la même chose qu'un point d'arrêt dans GDB. Un tel point d'arrêt dans GDB serait également atteint 100 fois.Si vous ne voulez que la
binding.pry
frappe une seule fois, pour la première itération de la boucle, utilisez un conditionnelbinding.pry
similaire:Vous quittez ensuite la session en cours en tapant simplement
exit
.la source
Sur la base des deux réponses précédentes ci-dessus:
Merci les gars! Vos conseils m'ont vraiment beaucoup aidé!
Je veux juste partager une astuce stupide, que j'utilise personnellement pour ne pas me soucier de la
DISABLE_PRY
variable d'environnement tout le temps. Ajoutez ce rappel au contrôleurApplicationController
de base de votre projet en permanence. Il réactiverait automatiquement PRY à chaquedisable-pry
appel de:la source
En utilisant gem,
pry-moves
vous pouvez sortir de la boucle en utilisantf
(commande finish)exemple:
la source
appuyez sur «q» et vous verrez comme ça
type
ce seul mot fera, sinon:
la source