La structure de base d'un projet de norme Ruby est essentiellement:
lib/
foo.rb
foo/
share/
foo/
test/
helper.rb
test_foo.rb
HISTORY.md (or CHANGELOG.md)
LICENSE.txt
README.md
foo.gemspec
Le share/
est rare et est parfois appelé data/
place. C'est pour les fichiers non-ruby d'usage général.La plupart des projets n'en ont pas besoin, mais même quand ils le font plusieurs fois tout est simplement conservé dans lib/
, bien que ce ne soit probablement pas la meilleure pratique.
Le répertoire test/
pourrait être appelé spec/
si BDD est utilisé au lieu de TDD, mais vous pouvez également voir features/
si concombre est utilisé, ou si demo/
QED est utilisé.
Ces jours foo.gemspec
peuvent simplement être .gemspec
- spécialement si elle n'est pas gérée manuellement.
Si votre projet a executables la ligne de commande, puis ajouter:
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
De plus, son projet le plus Ruby ont:
Gemfile
Rakefile
Le Gemfile
est pour l'utilisation Bundler et le Rakefile
est pour Rake construire un outil. Mais il existe d'autres options si vous souhaitez utiliser différents outils.
Quelques autres fichiers pas si rare:
VERSION
MANIFEST
Le fichier VERSION
ne contient que le numéro de version. Et le MANIFEST
(ou Manifest.txt
) contient une liste de fichiers à inclure dans le (s) fichier (s) de package du projet (par exemple, le paquet gem).
Ce que vous pourriez voir, mais l'utilisation est sporadique:
config/
doc/ (or docs/)
script/
log/
pkg/
task/ (or tasks/)
vendor/
web/ (or site/)
Où config/
contient divers fichiers de configuration; doc/
contient une documentation générée, par ex. RDoc, ou parfois de la documentation maintenue manuellement; script/
contient des scripts shell à utiliser par le projet; log/
contient des journaux de projet générés, par ex. rapports de couverture de test; pkg/
contient les fichiers de package générés, par ex. foo-1.0.0.gem
; task/
pourrait contenir divers fichiers de tâches tels que foo.rake
ou foo.watchr
; vendor/
contient des copies des autres projets, par ex. sous-modules git; et enfin web/
contient les fichiers du site Web du projet.
Ensuite, certains fichiers spécifiques d'outils qui sont aussi relativement fréquents:
.document
.gitignore
.yardopts
.travis.yml
Ils sont assez explicites.
Enfin, je vais ajouter que j'ajouter personnellement un fichier .index
et un répertoire var/
pour construire ce fichier (recherche de « Rubyworks indexeur » pour plus à ce sujet) et ont souvent un répertoire work
, quelque chose comme:
work/
NOTES.md
consider/
reference/
sandbox/
Juste une sorte de ferraille à des fins de développement.
La dernière nouveauté produit beaucoup moins de cruft ce qui est agréable. –