La estructura básica de un proyecto estándar de Ruby es básicamente:
lib/
foo.rb
foo/
share/
foo/
test/
helper.rb
test_foo.rb
HISTORY.md (or CHANGELOG.md)
LICENSE.txt
README.md
foo.gemspec
El share/
es rara y es a veces llamado data/
lugar. Es para archivos de uso general que no sean de rubí.La mayoría de los proyectos no lo necesitan, pero incluso cuando lo hacen muchas veces, todo se guarda en lib/
, aunque probablemente esta no sea la mejor práctica.
El directorio test/
podría llamarse spec/
si BDD se está utilizando en lugar de TDD, aunque también se puede ver features/
si se utiliza pepino, o si se utiliza demo/
QED.
Actualmente, foo.gemspec
puede ser .gemspec
, especialmente si no se actualiza manualmente.
Si su proyecto tiene ejecutables de línea de comandos, a continuación, añadir:
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
Además, la mayor parte del proyecto de Ruby tiene:
Gemfile
Rakefile
El Gemfile
es para el uso de Bündler y el Rakefile
es para Rake herramienta de construcción. Pero hay otras opciones si desea usar diferentes herramientas.
Algunos otros archivos no tan poco frecuentes:
VERSION
MANIFEST
El archivo VERSION
solo contiene el número de versión actual. Y el MANIFEST
(o Manifest.txt
) contiene una lista de archivos que se incluirán en los archivos del paquete del proyecto (por ejemplo, paquete de gemas).
¿Qué más podría ver, pero el uso es esporádico:
config/
doc/ (or docs/)
script/
log/
pkg/
task/ (or tasks/)
vendor/
web/ (or site/)
Dónde config/
contiene varios archivos de configuración; doc/
contiene documentación generada, p. RDoc, o en ocasiones documentación mantenida manualmente; script/
contiene scripts de shell para uso del proyecto; log/
contiene registros de proyectos generados, p. informes de cobertura de prueba; pkg/
contiene archivos de paquetes generados, p. foo-1.0.0.gem
; task/
podría contener varios archivos de tareas como foo.rake
o foo.watchr
; vendor/
contiene copias de los otros proyectos, p. submódulos git; y finalmente web/
contiene los archivos del sitio web del proyecto.
A continuación, algunos archivos de la herramienta específica que también son relativamente comunes:
.document
.gitignore
.yardopts
.travis.yml
Ellos son bastante fáciles de entender.
Por último, voy a añadir que, personalmente, añadir un archivo .index
y un directorio var/
para construir ese archivo (búsqueda de "Rubyworks paso a paso" para más información sobre esto) y con frecuencia tienen una work
directorio, algo así como:
work/
NOTES.md
consider/
reference/
sandbox/
Simplemente una especie de depósito de chatarra para fines de desarrollo.
La última generación de newgem produce mucho menos cruft, lo que es bueno. –