2009-06-16 9 views
0

Wie kann man Edelsteinabhängigkeiten so spezifizieren, dass Benutzer, die nur Ruby, Rake und Rubygems installiert haben, einen einzigen Rake-Befehl ausgeben können, um alle erforderlichen Abhängigkeiten zu installieren? Ist es möglich, beim Erstellen von Gem mit GemBuildTask dieselbe Abhängigkeitsspezifikation zu verwenden?Wie schnell ruby ​​Projektentwicklungsumgebung zu initialisieren?

Antwort

4

Es ist eigentlich ziemlich einfach, eine Harke Aufgabe einrichten, die eine Reihe von Edelsteine ​​installiert:

task :install_gems do 
    require "rubygems" 
    require "rubygems/dependency_installer" 

    installer = Gem::DependencyInstaller.new 

    [["rack"], ["merb-core", "1.0.12"]].each do |args| 
    installer.install(*args) 
    end 
end 

Natürlich können Sie diese in ein Verfahren extrahieren könnte und eine schönere Art und Weise schreiben Sie Ihre Abhängigkeiten zu spezifizieren, aber das sollte super funktionieren.

+0

Ich mag das - es ist eine gute Möglichkeit zu bieten, Abhängigkeiten für Endbenutzer zu installieren. – MattK

+0

Natürlich arbeiten wir an einer Lösung, die in Rails 3 viel robuster sein wird und auch für eigenständige Apps verfügbar sein wird :) –

0

Ich denke, im Moment müssten Sie eine benutzerdefinierte Rake-Aufgabe schreiben, die mit der Gem-Bibliothek gesprochen hat.

Es ist möglich, dass rip, das (sehr) neue Kind auf dem Block, alles einfacher machen wird, aber es ist sehr frühe Tage.

Aber jemand anderes kann einen besseren Weg ...

0

Wenn Ihre App als ein Juwel verpackt ist, können Sie die Abhängigkeiten der gemspec hinzufügen und rubygems wird versuchen, sie für Sie zu installieren, wenn Sie die gem install .

Es gibt eine Menge Möglichkeiten, aus einem Ruby-Code einen Edelstein zu machen. Vor kurzem habe ich jeweler verwendet.

Mit diesem können Sie ein Projekt als ein Juwel installieren, indem Sie rake install ausführen. Es gibt einige Anweisungen, wie man Abhängigkeiten von seinem GitHub-Wiki macht.

Verwandte Themen