0Pricing
Ruby Academy · Lezione

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 bundler e gem gestiscono 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/ o spec/, i test.
  • README.md e 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::VERSION

Che 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.version

Elencare 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_dependency per le dipendenze necessarie durante l'esecuzione, che gli utenti devono installare.
  • add_development_dependency per 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 " + current

Creare 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 gem crea 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 build crea 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

  1. Struttura di una gem
  2. Scrivere il codice
  3. Test e versionamento
  4. Pubblicare su RubyGems
← Torna a Ruby Academy