Manchmal müssen wir beim Schreiben eines Ruby-Skripts externe Gems verwenden, um es in eine API eines Drittanbieters zu integrieren oder um die Verbindung zu einer Datenbank zu erleichtern.
Zum Beispiel, wenn man Farben hinzufügen möchte, um Botschaften zu produzieren
require 'rainbow'puts Rainbow("My very important message in red").red
Aber wie kann man bei der Bereitstellung dieses Skripts sicherstellen, dass diese Abhängigkeiten vorhanden sind? Und werden sie in den erwarteten Versionen installiert, für die unser Skript getestet wurde?
Was ist dann zu tun? Das Erstellen eines Gems scheint für unser Skript zu schwer zu sein, und es ist nicht ratsam, von den Benutzern zu erwarten, dass sie die Installation selbst durchführen (für ein Gem ist das in Ordnung, aber für ein Skript, das 4-5 haben würde, ist es eine Menge).
Glücklicherweise ist Bundler für uns da, tatsächlich bietet der Installer ein Modul, das wir in unser Skript einbauen können und das alle Funktionalitäten einer Datei bietet Gem-Dateien sondern um unsere Edelsteine innerhalb des Skripts zu definieren.
require 'bundler/inline'gemfile do source ' gem 'rainbow', '~> 3.0.0'endputs Rainbow("My very important message in red").red
Wenn also das Skript Bundler gestartet wird, prüft es, ob die deklarierten Gems installiert werden, fährt bei Bedarf mit dem Download fort und schließlich werden diese automatisch geladen, um verwendet zu werden.
Für weitere
Bundler: Wie man Bundler in einem Einzeldatei-Ruby-Skript verwendet
GitHub – sickill/rainbow: Ruby Gem zum Kolorieren von gedrucktem Text auf ANSI-Terminals
Ruby Gem zum Kolorieren von gedrucktem Text auf ANSI-Terminals – GitHub – sickill/rainbow: Ruby Gem zum Kolorieren von gedrucktem Text auf ANSI-Terminals