Comment dois-je laisser à la CISR invite dans l'exécution d'un script?
Puis-je déposer une CISR invite de commandes à partir de l'exécution d'un script Ruby?
Je veux exécuter un script, mais alors il me donner une CISR invite à un point dans le programme avec l'état actuel du programme, mais pas seulement par l'exécution de rdebug et ayant un point d'arrêt.
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser ruby-debug pour avoir accès à la cisr
lorsque le programme atteint débogueur, vous obtenez l'accès à la cisr.
ruby-debug
gem, qui ne fonctionne pas avec Ruby 1.9.Pry (IRB alternative) vous permet également de faire cela, en fait, il a été conçu à partir du sol exactement pour ce cas d'utilisation 🙂
C'est aussi facile que de mettre
binding.pry
au point où vous souhaitez démarrer la session:Et à l'intérieur de la session:
Consulter le site web: http://pry.github.com
De levier vous permet de:
edit obj.my_method
syntaxeUne tonne de plus grands et des caractéristiques d'origine
apparemment, il exige un morceau de code de tomber dans la cisr.
Voici le lien (qui semble très bien fonctionner).
http://jameskilton.com/2009/04/02/embedding-irb-into-your-ruby-application
Cette fonctionnalité est disponible à partir de Ruby 2.4. Vous pouvez simplement utiliser
binding.irb
E. g.
Si vous exécutez le code ci-dessus, vous obtiendrez la cisr de la console, de sorte que vous pouvez inspecter les valeurs de variables locales et de tout ce qui est dans la portée.
Source: http://blog.redpanthers.co/new-binding-irb-introduced-ruby-2-4/
Ruby s'engager: https://github.com/ruby/ruby/commit/493e48897421d176a8faf0f0820323d79ecdf94a
Il suffit d'ajouter cette ligne à l'endroit où vous voulez que le point d'arrêt:
require 'ruby-debug';debugger
mais je suggère d'utiliser pry à la place de la cisr, qui est super pratique, insérer la ligne suivante à la place:
require 'pry'; binding.pry
Je suis très en retard pour le jeu, mais si vous êtes en train de charger un script à partir de l'intérieur de la cisr/pry déjà, un simple
raise
travaille également à la pop de retour à la cisr/pry. J'utilise assez souvent lors de l'écriture d'un arrêt de scripts à l'intérieur de la console rails.