Penso che sia praticamente perfetto. Per impostazione predefinita, Rubygems aggiungerà la directory lib al percorso di caricamento, ma è possibile inserire qualsiasi directory su quella utilizzando la variabile $:. vale a dire
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Questo significa che quando si è dire surfer.rb
in quel dir, è possibile require "surfer"
ovunque e sarà trovato il file.
Inoltre, come convenzione, le classi e i singleton ottengono un file e i moduli ottengono una directory. Per esempio, se si ha il modulo LolCatz
e la classe LolCatz::Moar
che sarebbe simile:
lib/
appname.rb
lolcatz/
moar.rb
Ecco perché c'è una cartella lib/appname perché la maggior parte le biblioteche sono nel appname
namespace.
Inoltre, se si tenta di eseguire il comando newgem --simple [projectname]
che genererà rapidamente uno scaffold per voi con solo gli elementi essenziali per un progetto Ruby (e per estensione un Ruby Gem). Ci sono altri strumenti che lo fanno, lo so, ma newgem è piuttosto comune. Di solito mi libero del file TODO e di tutte le cose degli script.
fonte
2009-03-05 11:20:58
noti che dovrete [sudo] gem install newgem per ottenere il comando newgem ... –
dolce. Non sapevo di newgem. I miei progetti non-rail hanno spesso rispecchiato la struttura di Rails perché l'ho trovato familiare. Grazie per questo consiglio sulle migliori pratiche. –
Un altro file importante potrebbe essere "LICENZA" – bluehavana