Gem-Struktur
Dateien und gemspec
Gem-Struktur ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein Gem?
Ein Gem ist eine paketierte Ruby-Bibliothek oder -Anwendung, die über RubyGems installiert, versioniert und geteilt werden kann. Fast jedes Ruby-Tool, das Sie verwenden, ist ein Gem.
- Ein Gem bündelt Code, Metadaten und Abhängigkeiten.
- Die Metadaten befinden sich in einer gemspec-Datei.
- Tools wie
bundlerundgemverwalten Gems.
Ein Grundgerüst erzeugen
Am schnellsten starten Sie mit bundle gem mygem. Dadurch werden die Standardverzeichnisstruktur, eine gemspec, ein Testverzeichnis, eine README-Datei und eine Lizenzvorlage erstellt. Anschließend ergänzen Sie den Code.
Die Standardstruktur
Ein typisches Gem namens mygem sieht so aus:
lib/mygem.rbdie Einstiegsdatei.lib/mygem/zusätzliche Quelldateien.lib/mygem/version.rbdie Versionskonstante.mygem.gemspecdie Metadaten.test/oderspec/die Tests.README.mdund eine Lizenzdatei.
Die Einstiegsdatei
lib/mygem.rb wird geladen, wenn jemand require 'mygem' ausführt. Die Datei bindet normalerweise die Versionsdatei und den Rest der Bibliothek ein und definiert das Modul der obersten Ebene.
module Mygem
def self.greet(name)
"Hello, " + name
end
end
puts Mygem.greet("world")Die Versionsdatei
Wenn die Version in einer eigenen Datei steht, können sowohl die gemspec als auch der Code sie auslesen. Üblicherweise befindet sich eine VERSION-Konstante im Modul des Gems.
module Mygem
VERSION = "0.1.0"
end
puts "Current version: " + Mygem::VERSIONWas ist eine Gemspec?
Die gemspec ist eine Ruby-Datei, die das Gem beschreibt: seinen Namen, seine Version, den Autor, die Zusammenfassung, die Dateien und die Abhängigkeiten. RubyGems liest sie ein, um das Paket zu erstellen und zu veröffentlichen.
Sie besteht aus normalem Ruby-Code, daher können Sie Werte berechnen. Halten Sie sie jedoch einfach und deklarativ.
Eine minimale Gemspec
Zu den wichtigsten Feldern gehören name, version, authors, summary und files. Hier sehen Sie die Grundstruktur in einfachem Ruby-Code, den Sie in mygem.gemspec einfügen könnten.
require "ostruct"
spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"
puts spec.name + " " + spec.versionDateien auflisten
Die gemspec muss angeben, welche Dateien im Gem enthalten sein sollen. Viele gemspec-Dateien fragen Git nach den versionierten Dateien ab, damit nichts vergessen wird:
spec.files = Dir['lib/**/*.rb'] + ['README.md']
Nur aufgelistete Dateien werden paketiert. Eine vergessene Datei führt daher zu einer fehlerhaften Installation.
Abhängigkeiten deklarieren
In die gemspec gehören zwei Arten von Abhängigkeiten:
add_dependencyfür Laufzeitabhängigkeiten, die Benutzer installieren müssen.add_development_dependencyfür Tools, die nur während der Entwicklung verwendet werden, etwa Test-Frameworks.
Verwenden Sie Versionsbedingungen wie '~> 1.2', um kompatibel zu bleiben.
Erforderliche Ruby-Version
Setzen Sie spec.required_ruby_version, damit Benutzer mit einer zu alten Ruby-Version eine verständliche Fehlermeldung statt eines verwirrenden Absturzes erhalten. Ergänzen Sie außerdem homepage, license und metadata, damit Ihr Gem einen professionellen Eindruck macht.
required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + currentDas Gem erstellen
Sobald die gemspec fertig ist, erzeugt gem build mygem.gemspec eine .gem-Datei. Sie können sie zum Testen vor der Veröffentlichung lokal mit gem install ./mygem-0.1.0.gem installieren.
Schnelltest
Testen Sie Ihr Verständnis der Gem-Struktur.
Zusammenfassung: Gem-Struktur
Sie haben gelernt, wie ein Gem aufgebaut ist:
bundle gemerstellt das Grundgerüst.lib/mygem.rbist der Einstiegspunkt.- Die Version befindet sich in einer eigenen Datei.
- Die gemspec enthält Metadaten, Dateien und Abhängigkeiten.
gem buildpaketiert das Gem.
Als Nächstes organisieren wir den eigentlichen Code im Gem.
Häufig gestellte Fragen
Ist die Lektion „Gem-Struktur“ kostenlos?
Ja — der vollständige Text von „Gem-Struktur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Gem-Struktur“?
Dateien und gemspec Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ruby Academy zu starten?
Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Gem-Struktur“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.