2010-07-22 13 views

risposta

36

Alcuni messaggi che ho trovato utile:

Modifica (2012-01-10): Un ottimo guida a tutto tondo per gemma migliore pra è RubyGems Guides. Consiglio vivamente di iniziare da qui ora.

per riassumere i punti chiave:

  • utilizzare la struttura di base e lib/gem.rblib/gem/ per il codice.
  • Inserire qualsiasi eseguibile in bin, qualsiasi file di dati in data e prove in test o spec.
  • Non utilizzare require o dipendere da file esterni al percorso di caricamento. (I file VERSION sembrano spesso vivere in luoghi strani nelle gemme.)
  • Non require 'rubygems'.
  • Non manomettere lo $LOAD_PATH.
  • Se ti trovi a scrivere require File.join(__FILE__, 'foo', 'bar'), stai sbagliando.
4

Durante la scrittura di grassi (binario) gemme la struttura è di solito questo:

lib/1.8/binary.so

lib/1.9/binary.so

lib/my_gem.rb (questo file sceglie semplicemente che binary.so per caricare in base alla versione ruby)

E per estensioni native:

lib/ext/my_gem/my_sources.*

lib/my_gem.rb

Ho anche di solito mettere un file version.rb qui:

lib/my_gem/version.rb

e contiene semplicemente qualcosa di simile:

module MyGem 
    VERSION = "0.1.0" 
end 

Inoltre, IMO, don' t inserire qualsiasi file .rb tranne il file che si desidera venga utilizzato dagli utenti per caricare la gemma, nella directory lib/.Metti invece tutti i file ausiliari in lib/my_gem/

4

Il consiglio di Telemachus è buono. Se lo segui, la tua gemma verrà configurata per giocare bene con bundler.

Si potrebbe anche provare a utilizzare gioielliere. È una gemma che genera scheletri per le gemme. Lo scheletro predefinito che sputa è conforme a tutte le convenzioni menzionate da Telemachus e farà anche alcune cose carine come aggiungere il tuo framework di test preferito o creare un repository GitHub.

+0

Il gioielliere è utile e fornisce un'introduzione leggera a Rake. Grazie per questo britt. – KomodoDave

5

Il modo più semplice è utilizzare bundler:

bundle gem <gem_name> 

si può anche utilizzare in un progetto esistente dalla directory genitore.

+2

Perché è down down? Penso che questo sia davvero il modo migliore e crea una buona struttura predefinita. – amoebe

3

Questo rubygems guide fornisce informazioni sulla struttura di un gioiello e poi va in dettaglio su ciò che dovrebbe essere incluso nel vostro gemspec

Si può trovare più facile da usare bundler per creare la struttura di cartelle della gemma per voi:

bundle gem <gem_name>

Problemi correlati