È cambiato molto con il rilascio di Bundler? Esiste un modello che può essere utilizzato come base? Quali sono le migliori pratiche?Qual è il modo moderno di strutturare una gemma di rubino?
risposta
Alcuni messaggi che ho trovato utile:
- http://chneukirchen.github.com/rps/
- http://tomayko.com/writings/require-rubygems-antipattern
- http://yehudakatz.com/2009/07/24/rubygems-good-practice/
- http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices
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.rb
lib/gem/
per il codice. - Inserire qualsiasi eseguibile in
bin
, qualsiasi file di dati indata
e prove intest
ospec
. - Non utilizzare
require
o dipendere da file esterni al percorso di caricamento. (I fileVERSION
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.
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/
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.
Il gioielliere è utile e fornisce un'introduzione leggera a Rake. Grazie per questo britt. – KomodoDave
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>
- 1. Qual è il modo moderno di strutturare una "classe" in JavaScript?
- 2. Gemma rubino per il confronto di testo
- 3. Convenzioni di denominazione gemma rubino
- 4. Gemma matematica rubino
- 5. Creazione di una gemma di rubino - Impossibile caricare tale file
- 6. Qual è il modo moderno di dichiarare quale versione di Perl usare?
- 7. Gemma di backup rubino - configurazioni condivise?
- 8. Qual è il modo giusto per realizzare l'uguaglianza in rubino
- 9. Qual è il modo migliore per strutturare e creare progetti OCaml?
- 10. crea una gemma di rubino e specifica dipendenze condizionali
- 11. Qual è il "modo rubino" per analizzare una stringa per una singola chiave/valore?
- 12. Rubino - creare gemma: ricaricare console con contenuti aggiornati gemma
- 13. Qual è il vantaggio di version.rb in Ruby gemma
- 14. Qual è l'equivalente rubino di "pythonic"?
- 15. È fb_graph o gemma rubino Koala meglio di facebooker2, utilizzando il grafico di Facebook?
- 16. utilizzando geokit o altra gemma rubino per calcolare il centro di una serie di coordinate geografiche
- 17. Qual è il modo più veloce per disegnare su un HWND su Windows moderno?
- 18. Unione di celle con foglio di calcolo gemma di rubino
- 19. Come posso determinare se una gemma di rubino è in realtà un'estensione C nativa?
- 20. Qual è il modo corretto Per aggiungere un: gruppo di gestione temporanea a Mio file Gemma
- 21. Qual è il modo migliore per caricare file in un browser moderno
- 22. Qual è il modo migliore per strutturare questo codice Drag & Drop da Linq ad eventi?
- 23. Come usi il linguaggio C per produrre una gemma di rubino?
- 24. esegui la gemma dell'annotazione all'interno del rubino.
- 25. Rimuovi/Disinstalla la vecchia versione di rubino gemma
- 26. Ottieni il valore di <select> in modo moderno?
- 27. Come si richiede una versione specifica di una gemma di rubino?
- 28. Il modo migliore per eseguire il debug di gemme di terze parti in rubino
- 29. Qual è il modo migliore per strutturare i dati su Firebase?
- 30. Qual è il modo migliore per strutturare un documento HTML per SEO e accessibilità?
anche interessati! – Arkan