Einführung in die Bindung.Pry

Heute ist das Ende der zweiten Woche meines Software Engineering Immersive Course an der Flatiron School. Der Lehrplan konzentriert sich stark auf das Verständnis der Kerngrundlagen von Ruby, einschließlich Objektorientierung, Klassenmethoden, Klasseninstanzen, Arbeiten mit Enumeratoren, Arrays, Hashes und Objektbeziehungen.

Die meisten, wenn nicht sogar die gesamte Ruby-Sprache, die ich geschrieben habe, befindet sich in der Test Driven Development (TDD) -Umgebung. Ich schreibe Code, um Rspec-Tests zu bestehen, die von jemand anderem oder mir selbst geschrieben wurden. Die Realität, die mir am Ende der zweiten Woche dämmerte, ist, dass die Verfügbarkeit von Rspec und informativen Fehlermeldungen nicht angenommen werden kann. Aus diesem Grund fand ich tiefere Freude am Schreiben und bestand meine eigenen Tests mit Pry als meinem Kumpel.

Dieses Juwel aller Edelsteine (ja, Edelsteininstallation erforderlich, Wortspiel auch beabsichtigt) ist ein wesentliches Werkzeug zum Debuggen, Testen und einfach nur einen guten alten Snoop in Ihren Code.

Also, was ist Pry?

Genau wie IRB (Interactive Ruby) ist Pry eine Art REPL (Read, Evaluate, Print, Loop). Es ist großartig, denn anstatt über IRB zu codieren, können Sie direkt in Ihrem Programm codieren und eine ‚Bindung‘ einfügen.pry‘ irgendwo im Code, um das Programm zu bewerten.

Einfügen ‚Bindung.pry‘ in Ihren Code wird Ihr Programm an der Stelle seiner Einfügung einfrieren. Wenn das Programm pry trifft, öffnet das Programm eine REPL und wir haben die Möglichkeit, in unseren Code zu pry und zu sehen, was unter der Haube vor sich geht.

Zur Verwendung installieren Sie zuerst Pry gem

Führen Sie „gem install pry“ in Ihrer Befehlszeile aus.

Mit Pry

habe ich ein Beispiel für eine Party-Klasse erstellt, die Klassen- und Instanzmethoden enthält.

Ich persönlich benutze „Bindung.hebeln“ In zwei häufigen Fällen gibt es natürlich viele andere Situationen, in denen Sie Hebeln verwenden würden.

Instanz Eins: Einlesen des Werts eines Arguments, das an eine Methode übergeben wird.

Ich frage mich, was „Gelegenheit“ in Zeile 19 ist?

Ich habe eine „Bindung.hebeln“ an der Unterseite, so dass ich in diese besondere Methode hebeln konnte. Hinweis „verbindlich.pry“ funktioniert nicht, wenn ich es in meine if / else-Anweisung einfüge, sodass das Pry nach Abschluss der Bedingungsanweisung platziert wurde.

Mein Beispiel mit einer großartigen Pfeilzeigeaktion

Wenn ich nun die Methode „Musik“ in meinem Programm aufrufe und meine Datei im Terminal ausführe, wird die Pry REPL geöffnet. Ich kann jetzt testen, was der Wert von „occasion“ aus Zeile 19 ist, indem ich „occasion“ in mein Terminal eingebe.

Hey, es ist ein „Geburtstag“! Da wir wissen, dass es ein Geburtstag ist, können wir sicher sein, dass diese Methode nach dem Ausführen „Happy Birthday to you, Happy Birthday to you“ zurückgibt. Süß!

Instance Two: Prying into enumerable methods

Im folgenden Beispiel sammelt die Klassenmethode „all_party_types“ alle Party-Anlasstypen und gibt ein Array aller Anlässe zurück, die jemals in der Party-Klasse erstellt wurden.

Da Pry ein großartiges Debugging-Tool ist, können wir die Werte von fast allem, was wir wollen, untersuchen. Zum Beispiel, was drin ist „Party.alle“ (Zeile 31) oder „party“ (Zeile 31) oder „party.anlass“ (Zeile 32)? Liefert es uns die Daten, die wir erwarten?

Wenn wir eingeben, was wir hebeln wollen, wird die REPL genau das drucken, was es ist. Siehe , , unten. Beachten Sie, dass „item“ und „item.occasion“ zeigt uns nur eine Instanz von „Party“, aber wenn wir „exit“ in der Befehlszeile drücken und diese Befehle erneut ausführen, druckt die REPL die nächste Instanz in der Schleife aus und zeigt uns den nächsten Wert im Array.

Hebeltipps

Weil Teamarbeit die Traumarbeit macht, hier sind meine vier wichtigsten Tipps zur Verwendung von Pry.

  1. Require Rufen Sie dann die Methode auf, bevor Sie versuchen, zu hebeln

Sie müssen oben in Ihrer Datei „require ‚pry‘ “ und dann die Methode zuerst vor „binding .pry“ wird funktionieren.

2. Prying into a loop („exit“)

Sie können „exit“ verwenden, um in den Rückgabewert der nächsten Schleife zu pry .

Zum Beispiel, wenn „Party.all“ enthält ein Array von 3 Instanzen von „party“. Wenn Sie „exit“ in Ihre Befehlszeile eingeben, wird die nächste Instanz der Schleife aufgerufen. Für jede Instanz der Schleife können Sie auf den Wert „party“ zugreifen. Magie!

3. Erzwinge das Verlassen der Schleife („!!!“/“beenden!“)

Wenn Sie mit all dem Herumschnüffeln fertig sind, können Sie schlagen „!!!“ oder „exit!“ um vollständig aus dem Pry herauszukommen. „exit“ ohne das „!“ ist auch eine Option, wenn Sie nicht in eine Methode mit einer Schleife einsteigen.

4. Pry zurücksetzen („reload-code“)

Was ist der Sinn des Debuggens, wenn Sie Ihren Code nicht ändern und unterwegs testen können?

Sobald Sie mit der Aktualisierung Ihres Codes fertig sind, können Sie „reload-code“ in Ihre Befehlszeile eingeben. Dadurch wird Ihre Pry-Sitzung mit dem neuen Programm zurückgesetzt, ohne dass Sie pry manuell beenden und pry erneut eingeben müssen, nachdem Sie Änderungen an Ihrem Programm vorgenommen haben.

Also, das ist alles von mir. Viel Spaß beim Debuggen!

You might also like

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.