Bibliotheken
Wie die meisten Programmiersprachen nutzt Ruby eine breite Palette von Drittanbieter-Bibliotheken.
Fast alle dieser Bibliotheken werden in Form eines Gems veröffentlicht, einer verpackten Bibliothek oder Anwendung, die mit einem Tool namens RubyGems installiert werden kann.
RubyGems ist ein Ruby-Paketierungssystem, das zur Erstellung, zum Teilen und zur Installation von Bibliotheken dient (in gewisser Weise ist es ein distributionspaketierungssystem, ähnlich wie z. B. apt-get, aber auf Ruby-Software ausgerichtet). Ruby wird seit Version 1.9 standardmäßig mit RubyGems geliefert, frühere Ruby-Versionen erfordern, dass RubyGems von Hand installiert wird.
Einige andere Bibliotheken werden als archivierte (.zip oder .tar.gz) Verzeichnisse mit Quellcode veröffentlicht. Installationsprozesse können variieren, typischerweise ist eine README- oder INSTALL-Datei mit Anweisungen verfügbar.
Werfen wir einen Blick darauf, wie Sie Bibliotheken finden und für Ihren eigenen Gebrauch installieren können.
Bibliotheken finden
Der Hauptort, an dem Bibliotheken gehostet werden, ist RubyGems.org, ein öffentliches Repository von Gems, das durchsucht und auf Ihrem Rechner installiert werden kann. Sie können Gems über die RubyGems-Website durchsuchen und finden oder den Befehl gem verwenden.
Mit gem search -r können Sie das Repository von RubyGems durchsuchen. Zum Beispiel gibt gem search -r rails eine Liste von Rails-bezogenen Gems zurück. Mit der Option --local (-l) führen Sie eine lokale Suche in Ihren installierten Gems durch. Um ein Gem zu installieren, verwenden Sie gem install [gem]. Das Auflisten von installierten Gems erfolgt mit gem list. Weitere Informationen zum Befehl gem finden Sie unten oder unter RubyGems' Doku.
Es gibt jedoch auch andere Quellen für Bibliotheken. GitHub ist das wichtigste Repository für Ruby-bezogene Inhalte. Meistens wird der Quellcode eines Gems auf GitHub gehostet, während es als vollwertiges Gem auf RubyGems.org veröffentlicht wird.
The Ruby Toolbox ist ein Projekt, das es einfach macht, Open-Source-Ruby-Projekte zu erkunden. Es enthält Kategorien für verschiedene gängige Entwicklungsaufgaben, sammelt viele Informationen über die Projekte wie Release- und Commit-Aktivitäten oder Abhängigkeiten und bewertet Projekte basierend auf ihrer Popularität auf RubyGems.org und GitHub. Dies erleichtert die Suche nach einem Gem, das ein bestimmtes Problem löst, wie z. B. Web-Frameworks, Dokumentationstools und Code-Qualitätsbibliotheken.
Ein paar Worte mehr zu RubyGems
Hier ist eine kurze Übersicht über den Befehl gem für Ihren täglichen Gebrauch. Detailliertere Dokumentation ist verfügbar und deckt alle Aspekte dieses Paketierungssystems ab.
Suche nach verfügbaren Gems
Der Befehl search kann verwendet werden, um nach Gems basierend auf einem String zu suchen. Gems, deren Namen mit dem angegebenen String beginnen, werden in der Rückgabe aufgelistet. Zum Beispiel, um nach "html"-bezogenen Gems zu suchen
$ gem search -r html
*** REMOTE GEMS ***
html-sample (1.0, 1.1)Das Flag --remote / -r zeigt an, dass wir das offizielle RubyGems.org-Repository inspizieren wollen (Standardverhalten). Mit dem Flag --local / -l führen Sie eine lokale Suche unter Ihren installierten Gems durch.
Ein Gem installieren
Sobald Sie wissen, welches Gem Sie installieren möchten, zum Beispiel das beliebte Ruby on Rails Framework
$ gem install railsSie können sogar nur eine bestimmte Version der Bibliothek installieren, indem Sie das Flag --version / -v verwenden
$ gem install rails --version 5.0Alle Gems auflisten
Für eine Liste aller lokal installierten Gems
$ gem listUm eine (sehr lange) Liste aller auf RubyGems.org verfügbaren Gems zu erhalten
$ gem list -rHilfe!
Dokumentation ist in Ihrem Terminal verfügbar
$ gem helpZum Beispiel ist gem help commands sehr nützlich, da es eine Liste aller gem-Befehle ausgibt.
Eigene Gems erstellen
RubyGems.org hat mehrere Anleitungen zu diesem Thema. Sie möchten vielleicht auch Bundler untersuchen, ein generisches Tool, das Ihnen hilft, die Abhängigkeiten einer Anwendung zu verwalten und das zusammen mit RubyGems verwendet werden kann.