Wie schnell ruby Projektentwicklungsumgebung initialisieren?
Frage
Wie Juwel Abhängigkeiten in einer Weise, dass Benutzer mit nur Rubin, Rechen und rubygems angeben einen einzigen Rake Befehl installiert konnten alle Abhängigkeiten für die Installation? Ist es möglich, die gleiche Abhängigkeit Spezifikation zu verwenden, wenn gem mit GemBuildTask Aufbau?
Lösung
Es ist eigentlich ziemlich einfach, eine Harke Aufgabe einrichten, die eine Reihe von Edelsteinen 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önnte man diese in ein Verfahren extrahieren und schreiben eine schönere Art und Weise Ihre Abhängigkeiten zu spezifizieren, aber das sollte große Arbeit.
Andere Tipps
Ich glaube, zur Zeit würden Sie eine benutzerdefinierte Rake Aufgabe schreiben müssen, die mit der Gem Bibliothek gesprochen.
Es ist möglich, dass rippen , die (sehr) neue Kind auf dem Block, wird es alle einfacher, aber es ist sehr frühen Tagen.
Aber jemand anderes kann einen besseren Weg ...
Wenn Ihre App als ein Juwel verpackt ist, können Sie die Abhängigkeiten der gemspec hinzufügen könnte und rubygems versuchen, sie für Sie zu installieren, wenn Sie den Edelstein installieren.
Es gibt eine Reihe von Möglichkeiten, ein Juwel aus einigem Ruby-Code zu machen. Vor kurzem habe ich genommen mit Juwelier .
Damit können Sie ein Projekt als ein Juwel installieren rake install
läuft. Es gibt einige Anweisungen, wie Abhängigkeiten von seiner GitHub Wiki zu tun.