2009-06-11 9 views
3

Ich möchte ein Plugin installieren, aber ich befürchte, dass es viele unnötige Sachen installieren wird. Ich würde gerne sehen, was Datei Rake nimmt Installationsanweisungen von und entfernen Sie alles unnötige.Welche Schritte werden ausgeführt, nachdem Sie "Rake installieren" gesagt haben?

Ich glaube, das ist das Rakefile. Aber ich bin mir nicht sicher, was passiert, wenn Rake die Rakefile betrachtet - führt es die gesamte Rakefile oder nur Teile der Rakefile aus, die für diese "Install" -Prozedur relevant sind?

Antwort

3

Eine Rake-Datei ist eine Sammlung von Aufgaben, wenn Sie Rake mit einem Argument aufrufen (in diesem Fall installieren), ist dies die Aufgabe, die ausgeführt wird. (Es ist ähnlich wie ant, wenn Sie aus Java kommen)

Also, nein, Rake führt nicht die gesamte Rakefile beim Aufruf von "Rake + Task", sondern nur die gewählte Aufgabe. Beachten Sie, dass Aufgaben Abhängigkeiten haben können (z. B. kann die "Test" -Aufgabe von anderen vorherigen Aufgaben abhängen, wie das Erstellen einiger Ordner und Zeug für die Ausführung der Tests).

Schließlich ist das Rake-Benutzerhandbuch, wie von anderen Benutzern hingewiesen, nützlich, aber ich empfehle eine angenehmere lesen Sie hier ->Ruby on Rails Rake tutorial.

+1

Wenn Sie "rake install --dry-run" ausführen, sehen Sie auch, welche Aufgaben Rake ausführen wird, ohne dass tatsächlich eine Verarbeitung stattfindet. – Shadwell

1

Rake ist ähnlich wie Make daß ein Rakefile besteht aus Ziele und Abhängigkeiten einzurichten. Dies unterscheidet sich von einem normalen Ruby-Skript darin, dass Rake bei dem Ziel beginnt, nach dem Sie fragen, und rekursiv seine Abhängigkeiten ausführt, bevor das Ziel selbst ausgeführt wird.

So installieren könnte wie folgt aussehen:

task :install => :stage do 
    # stuff to do 
end 

Hier Ihr Ziel ist die install Aufgabe, und es hängt von einer anderen Aufgabe stage genannt.

auszuführen install, Rechen muss zuerst die Abhängigkeiten von stage auszuführen (wenn es welche hat), dann stage, dann führt er schließlich install. Also nein, Sie führen nicht die gesamte Datei aus, nur so viel, dass Sie das gewünschte Ziel sicher ausführen können.

Rake unterstützt auch Datei Ziele:

file 'foo.html' => 'bar.xml' do |t| 
    # Build foo.html from bar.xml, however that is done 
end 

Wenn Sie Machen Sie wissen, das kommt mir bekannt vor. Rake prüft zuerst, ob bar.xml von irgendetwas abhängt, und wenn ja, führt es das aus. Wenn dann bar.xml neuer als foo.html ist, führt Rake diese Dateiaufgabe aus. Wenn foo.html neuer ist, nimmt Rake an, dass es bereits gebaut wurde und überspringt es.

Für mehr, die ist ein guter Ort, um zu beginnen, wenn Sie lernen möchten, was Rake tut.

+0

Ich würde die gleiche Aufgabe Abhängigkeit Beispiel schreiben, aber dann dachte ich ... "Compiling" in Ruby? : D –

+0

Guter Punkt. Heh. – tgamblin

0

Warum sollte ein Plugin etwas "unnötig" installieren?

Angenommen, Ihre Befürchtungen sind berechtigt, aber könnten Sie das Plugin nicht installieren, Ihre Untersuchung durchführen und dann, falls nicht zufrieden, mit Ihrem Versionskontrollsystem zur vorinstallierten Version zurückkehren? Wenn Sie nicht Quellcodeverwaltung verwenden, könnte dies die perfekte Ausrede sein, um zu starten ...

Verwandte Themen