Wie kann ich die Tropfen der IRB-prompt aus ein script läuft?
Kann ich drop in einen der IRB-prompt von einem Ruby-Skript ausgeführt?
Ich möchte ein Skript ausführen, aber dann haben Sie es mir eine IRB-prompt, an einer Stelle im Programm mit dem aktuellen Zustand des Programms, aber nicht nur mit rdebug und mit einem Haltepunkt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie ruby-debug-Zugang zum irb -
wenn das Programm erreicht debugger erhalten Sie Zugang zum irb.
ruby-debug
gem, die nicht mit Ruby 1.9.Hebeln (ein IRB alternative) auch können Sie dies tun, in der Tat, es wurde von Grund auf für genau diesen use-case 🙂
Es ist so einfach wie putting
binding.pry
an der Stelle, die Sie wollen, um die Sitzung zu starten:Und in der Sitzung:
Schauen Sie sich die website: http://pry.github.com
Hebeln wir Sie:
edit obj.my_method
syntaxEiner tonne mehr tolle und originelle features
offenbar erfordert es ein Stück code, um die drop-in irb.
Hier ist der link (scheint gut zu funktionieren).
http://jameskilton.com/2009/04/02/embedding-irb-into-your-ruby-application
Diese Funktion ist verfügbar, von Ruby 2.4. Sie können einfach verwenden Sie
binding.irb
E. g.
Wenn Sie obigen code, Sie erhalten irb-Konsole, so dass Sie überprüfen können, Werte von lokalen Variablen, und alles, was im Umfang enthalten ist.
Quelle: http://blog.redpanthers.co/new-binding-irb-introduced-ruby-2-4/
Ruby Begehen: https://github.com/ruby/ruby/commit/493e48897421d176a8faf0f0820323d79ecdf94a
Fügen Sie einfach diese Zeile, wo der breakpoint:
require 'ruby-debug';debugger
aber ich schlage vor, verwenden Sie hebeln statt der irb, die ist super handlich, fügen Sie die folgende Zeile, statt:
require 'pry'; binding.pry
Ich bin ziemlich spät, um das Spiel, aber wenn Sie laden, ein Skript innerhalb von irb/pry schon, eine einfache
raise
arbeitet auch, um pop Sie wieder in das irb/pry-Eingabeaufforderung. Ich benutze das ganz oft beim schreiben eine off-Skripts innerhalb der rails-Konsole.