Kannst du 'verlangen' ruby Datei in der irb-Sitzung, automatisch, auf jeden Befehl?
Ich bin derzeit eine Datei Bearbeiten, und ich bin mit irb-Ansatz zum testen der api:
> require './file.rb'
> o = Object.new
> o.method
Dann möchte ich in der Lage sein, um die Datei zu Bearbeiten.rb, und in der Lage sein, um zu sehen die änderungen sofort. Beispiel: angenommen, new_method nicht existieren, wenn ich das erste gewünschte Datei.rb:
> o.new_method
Wird ein Fehler zurückgegeben. Ist es ein sandbox/Entwickler-Modus oder eine Methode, wobei ich nur erreichen können, die oben ohne die Datei neu geladen, jedes mal? Verlangen wird nicht funktionieren, nach dem ersten verlangen, unabhängig. Ich nehme an, schlimmsten Fall würde ich verwenden, laden stattdessen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich in der Regel erstellen Sie eine einfache Funktion wie diese:
Mit, dass eine einfache
reload
re-import-alle scripts, die ich auf Arbeit bin. Es ist nicht automatisch, aber es ist die nächste Sache, die ich habe in der Lage zu kommen mit.Können Sie überschreiben
method_missing
zum aufrufen dieser Funktion automatisch, wenn das Objekt aufgerufen wird, mit einer Methode, die nicht existiert. Ich habe noch nie selber ausprobiert, obwohl, so dass ich nicht in der Lage, spezifische Beratung. Es würde auch nicht helfen, wenn Sie eine Methode aufrufen, die bereits existiert, aber es hat sich einfach geändert wurde.In meine eigene Faulheit, ich habe so weit gegangen wie das mapping eine der programmierbaren Tasten auf meiner Maus die Taste sequence "reload<enter>". Wenn ich mit
irb
alle, die es nimmt, ist das zucken des kleinen Fingers auf alles nachladen. Folglich, wenn ich mich nicht Verwendungirb
ich am Ende mit der Zeichenfolge "neu laden" in Dokumente eingefügt unabsichtlich (aber das ist ein anderes problem vollständig).reload!
das bedeutet im wesentlichen die gleiche Sache.method_missing
ist eine kluge aber böse Idee. Natürlich löst es nicht das problem, wenn eine Methode geändert.Diese laufen nicht jeden Befehl, aber Sie können auch eine Datei auf jeder der IRb-Sitzung.
~/.irbrc
geladen jedes mal, wenn Sie beginnen, eine IRb-Sitzung.~/.irbrc
~/somefile.rb
terminal
~/.irbrc
geladen jedes mal, wenn Sie beginnen, eine irb-SitzungWas
require_dependency
aus ActiveSupport Bibliothek?Dann
require_dependency
sollte die Verfolgung von änderungen inmyscript
- Datei und laden Sie es erneut.