Struttura di una gem
File e gemspec
Struttura di una gem è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.
Che cos'è un gem?
Un gem è una libreria o applicazione Ruby pacchettizzata, installabile, versionabile e condivisibile tramite RubyGems. Quasi ogni strumento Ruby che utilizza è un gem.
- Un gem raggruppa codice, metadati e dipendenze.
- I metadati si trovano in un file gemspec.
- Strumenti come
bundleregemgestiscono i gem.
Generare uno scheletro
Il modo più rapido per iniziare è bundle gem mygem. Questo comando crea la struttura standard delle directory, un gemspec, una cartella per i test, un README e una licenza. Poi dovrà completare il codice.
La struttura standard
Un gem tipico denominato mygem ha questo aspetto:
lib/mygem.rb, il file di ingresso.lib/mygem/, i file sorgente aggiuntivi.lib/mygem/version.rb, la costante della versione.mygem.gemspec, i metadati.test/ospec/, i test.README.mde un file di licenza.
Il file di ingresso
lib/mygem.rb viene caricato quando si esegue require 'mygem'. Di solito richiede il file della versione e il resto della libreria, quindi definisce il modulo di primo livello.
module Mygem
def self.greet(name)
"Hello, " + name
end
end
puts Mygem.greet("world")Il file della versione
Conservare la versione in un file separato consente sia al gemspec sia al codice di leggerla. La convenzione prevede una costante VERSION all'interno del modulo del gem.
module Mygem
VERSION = "0.1.0"
end
puts "Current version: " + Mygem::VERSIONChe cos'è un gemspec?
Il gemspec è un file Ruby che descrive il gem: nome, versione, autore, riepilogo, file e dipendenze. RubyGems lo legge per creare e pubblicare il pacchetto.
È un normale file Ruby, quindi può calcolare valori, ma è preferibile mantenerlo semplice e dichiarativo.
Un gemspec minimo
I campi fondamentali sono nome, versione, autori, riepilogo e file. Ecco la struttura, scritta come semplice codice Ruby che potrebbe inserire in mygem.gemspec.
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.versionElencare i file
Il gemspec deve dichiarare quali file vengono inclusi nel gem. Molti gemspec chiedono a git l'elenco dei file tracciati, così non viene dimenticato nulla:
spec.files = Dir['lib/**/*.rb'] + ['README.md']
Solo i file elencati vengono impacchettati, quindi dimenticarne uno comporta un'installazione non funzionante.
Dichiarare le dipendenze
Nel gemspec vengono indicati due tipi di dipendenze:
add_dependencyper le dipendenze necessarie durante l'esecuzione, che gli utenti devono installare.add_development_dependencyper gli strumenti usati solo durante lo sviluppo, come i framework di test.
Utilizzi vincoli di versione come '~> 1.2' per mantenere la compatibilità.
Versione Ruby richiesta
Imposti spec.required_ruby_version affinché gli utenti che usano una versione di Ruby troppo vecchia ricevano un errore chiaro invece di un arresto anomalo difficile da interpretare. Compili anche homepage, license e metadata per ottenere un gem curato.
required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + currentCreare il gem
Quando il gemspec è pronto, gem build mygem.gemspec produce un file .gem. Può installarlo localmente con gem install ./mygem-0.1.0.gem per eseguire i test prima della pubblicazione.
Verifica rapida
Verifichi la comprensione della struttura di un gem.
Riepilogo: struttura di un gem
Ha appreso come è organizzato un gem:
bundle gemcrea la struttura.lib/mygem.rbè il punto di ingresso.- La versione si trova in un file separato.
- Il gemspec contiene metadati, file e dipendenze.
gem buildcrea il pacchetto.
Ora organizzerà il codice vero e proprio all'interno del gem.
Domande Frequenti
La lezione «Struttura di una gem» è gratuita?
Sì — il testo completo di «Struttura di una gem» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.
Cosa imparerò in «Struttura di una gem»?
File e gemspec Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ruby Academy?
Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Struttura di una gem»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ruby Academy?
Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Struttura di una gem
- Scrivere il codice
- Test e versionamento
- Pubblicare su RubyGems