Gem 1 Muster

Ich habe ein paar Ruby Edelsteine im Laufe der Jahre erstellt, und es gibt eine Reihe von Mustern, die ich wiederholt habe, dass ich teilen wollte. Ich habe sie nicht erfunden, sondern längst vergessen, wo ich sie zum ersten Mal gesehen habe. Sie sind: Sie haben jetzt fünf Muster gesehen, die für Ruby Edelsteine nützlich sein können. Jetzt gehen Sie etwas genial bauen! Es wird nur die neueste Version der 2.x-Serie verwenden – also 2.3.0 – und nicht 3.0.0. Dieses Verhalten mag einige Leute überraschen, aber automatisch jede Hauptversion über Version 2 hinaus zuzulassen, ist ein überraschenderes Verhalten. Lassen Sie uns in jeden von ihnen graben. In den Beispielen wird das Juwel hallo genannt. Beachten Sie, dass wir die PATCH-Ebene der Versionsnummer gelöscht haben. Hätten wir gesagt, 2.2.0, das wäre gleich [`>= 2.2.0`, ` Dieses Repository enthält mehrere Projekte (jeweils als separate Gems installierbar). RubyGems bietet dafür eine Abkürzung, allgemein bekannt als twiddle-wakka: Das RubyGems-Team fordert gem-Entwickler auf, den Semantic Versioning-Standard für ihre Gem-Versionen zu befolgen. Die RubyGems-Bibliothek selbst erzwingt keine strikte Versionsrichtlinie, aber die Verwendung einer “irrationalen” Richtlinie wird nur ein Bärendienst für diejenigen in der Community sein, die Ihre Edelsteine verwenden. Andere Vorabversionsnummern können 2.0.0.rc1 oder 1.5.0.beta.3 enthalten. und Sie sind gesetzt.

Diese Edelsteine können dann mit dem –pre flag installiert werden, wie so: Die .tt-Erweiterung bezeichnet Thor-Vorlage. Thor ist das, was Rails unter der Haube verwendet. Es gibt eine Vielzahl von Möglichkeiten, um Ihre Gemspec zu codieren. Hier ist die, die ich gerne verwende: Erstellen Sie eine Vorlage in lib/generators/hello/templates/migration.rb.tt: Die Korrektur ist einfach, benötigen Sie einfach die Datei relativ zum Lastweg: Verwenden Sie eine Bibliothek wie Combustion. Es ist entworfen, um mit RSpec verwendet werden, aber ich habe keine Probleme mit Minitest. Verbrennung erzeugt einige Dateien, die nicht benötigt werden, so lösche ich sie nur. Wenn Sie Ihre Gem-Dateien verpacken, müssen Sie vorsichtig sein, was in Ihrem lib-Verzeichnis ist. Jedes Juwel, das Sie installiert haben, bekommt sein lib-Verzeichnis an Ihren $LOAD_PATH angehängt. Sie möchten die Verwendung neuerer rückwärtskompatibler Versionen zulassen, benötigen aber eine spezielle Fehlerbehebung, Sie können eine zusammengesetzte Anforderung verwenden: Die Make your own gem guide hat ein großartiges Beispiel für dieses Verhalten in der Praxis, einschließlich einer funktionierenden Testsuite. Der Code für dieses Gem ist auch auf GitHub. Mustermann folgt Semantic Versioning 2.0.

Alles, was im README oder über YARD dokumentiert und nicht als privat deklariert ist, ist Teil der öffentlichen API. Vorabversionen beschränken Sie auf Vorabversionen. Wenn RubyGems ein Gem aktiviert, fügt es den lib-Ordner Ihres Pakets zum $LOAD_PATH hinzu, der bereit ist, normalerweise von einer anderen lib oder Anwendung benötigt zu werden. Es ist sicher anzunehmen, dass Sie dann eine beliebige Datei in Ihrem lib-Ordner benötigen können. Sie können ganz einfach die neueste Edge-Version von GitHub von jedem dieser Edelsteine über Bundler verwenden: RubyGems bietet zwei Haupttypen von Abhängigkeiten: Laufzeit und Entwicklung. Laufzeitabhängigkeiten sind das, was Ihr Gem benötigt, um zu funktionieren (z. B. Schienen, die aktive Unterstützung benötigen).

Seien Sie konsistent mit dem Namen Ihrer Gem-Dateien in lib und bin. Das Hola-Juwel aus dem Make your own gem guide ist ein großartiges Beispiel: Dateien ändern, wenn Ihr Gem App-, Konfigurations- oder Lieferantenverzeichnisse hat. In der Regel verwende ich die zuletzt unterstützte Version für die Ruby-Mindestversion.

Comments are closed.