Je pense que c'est à peu près sur place. Par défaut, Rubygems va ajouter le répertoire lib de l'loadpath, mais vous pouvez appuyer sur n'importe quel répertoire vous voulez sur que l'utilisation de l' $: variable. c'est à dire
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Cela signifie que lorsque vous avez la parole, surfer.rb
en que dir, vous pouvez require "surfer"
n'importe où et le fichier sera trouvé.
Aussi, en tant que convention, les classes et les singletons obtenir un fichier et les modules d'obtenir un répertoire. Par exemple, si vous avez eu l' LolCatz
module et l' LolCatz::Moar
de la classe qui pourrait ressembler à:
lib/
appname.rb
lolcatz/
moar.rb
C'est pourquoi il y a une lib/appname dossier, car la plupart des bibliothèques sont dans l' appname
d'espace de noms.
En outre, si vous essayez d'exécuter la commande newgem --simple [projectname]
qui va générer rapidement un échafaudage pour vous avec juste l'essentiel pour un Rubis projet (et, par extension, un Ruby Gem). Il y a d'autres outils qui ne sont, je le sais, mais newgem est assez commun. J'ai l'habitude de me débarrasser du fichier TODO et tout le script de trucs.