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
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.
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 ...
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.
- 1. Wie macht Ruby # initialisieren privat?
- 2. initialisieren in Ruby
- 3. Wie sauber Attribute in Ruby mit neuen zu initialisieren?
- 4. Wie initialisieren Sie Variablen in Ruby?
- 5. Wie msvcrt.dll zu initialisieren?
- 6. Wie schnell eine große BufferGeometry zu aktualisieren?
- 7. Ruby: Hinzufügen von Dingen zu initialisieren Methode durch Module
- 8. Ruby on Rails before_filter vs. ruby's initialisieren
- 9. Wie JavaFX Tookit zu initialisieren?
- 10. Wie Stringstream-Objekt zu initialisieren
- 11. Initialisieren char-Arrays in ähnlicher Weise wie Stringliterale zu initialisieren
- 12. Wie kann ich die Instanzvariablen eines Moduls in Ruby initialisieren? .
- 13. Wie zu initialisieren java.util.date zu leeren
- 14. Opcache löscht zu schnell
- 15. NumPy: Wie schnell viele Vektoren zu normalisieren?
- 16. Wie schnell Quellcode in Muster zu organisieren?
- 17. Wie schnell ist Data.Sequence.Seq im Vergleich zu []?
- 18. Wie schnell eine Postgres-Datenbank zu analysieren
- 19. wie eine öffentliche Eigenschaft zu initialisieren
- 20. Wie Javascript zu initialisieren auf einer Webseite
- 21. jQuery wie eine Verzögerungsfunktion neu zu initialisieren
- 22. Wie richtig einige Variablen zu initialisieren?
- 23. Ruby, wie Ruby zu überschreiben sort_by
- 24. Schnell Ruby on Rails Frage auf redirect_to in demselben Controller
- 25. Wie schnell ist Whoosh?
- 26. Wie schnell ist Python?
- 27. Boost initialisieren: shared_ptr zu NULL
- 28. Swift SKAction.waitForDuration zu schnell ausgeführt
- 29. Dropdown-Menü zu schnell schließen
- 30. Angular Animate 1.4 zu schnell
Ich mag das - es ist eine gute Möglichkeit zu bieten, Abhängigkeiten für Endbenutzer zu installieren. – MattK
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 :) –