Idéal ruby structure de projet
Je suis après un aperçu/clarification de l'idéal de la structure de projet pour un ruby (non-rails/merb/etc) de projet. J'imagine qu'il suit
app/
bin/ #Files for command-line execution
lib/
appname.rb
appname/ #Classes and so on
Rakefile #Running tests
README
test,spec,features/ #Whichever means of testing you go for
appname.gemspec #If it's a gem
J'ai obtenu quelque chose de mal? Quelles pièces que j'ai raté?
Vous devez vous connecter pour publier un commentaire.
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
Cela signifie que lorsque vous avez la parole,
surfer.rb
dans que dir, vous pouvezrequire "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 la
LolCatz
du module et de laLolCatz::Moar
classe qui pourrait ressembler à:C'est pourquoi il y a une lib/appname dossier, car la plupart des bibliothèques sont dans le
appname
espace de noms.En outre, si vous essayez d'exécuter la commande
newgem --simple [projectname]
que allons rapidement générer 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 choses.lib
être automatiquement ajouté à la loadpath. C'est un 1.9 chose? Aucune configuration particulière n'est nécessaire pour l'obtenir il de se produire?bundle gem gem_name
Voir l'exemple suivant de http://guides.rubygems.org/what-is-a-gem/
Je tente d'imiter les Rails de projet de la structure, car mon équipe, qui traite généralement avec les Rails de, permettra de comprendre la structure de mieux qu'une autre configuration. Convention over Configuration des saignements de plus de Rails.
Si vous utilisez le système de regroupement, l'exécution de cette commande
bundle gem app_name
vous donnera la même structure de répertoire.Si vous souhaitez utiliser rspec à la place de tests unitaires ensuite, vous pouvez exécuter cette commande
rspec --init
(Assurez-vous juste
cd app_name
premier)