Die Kernstruktur eines Standardprojekt Ruby ist im Grunde:
lib/
foo.rb
foo/
share/
foo/
test/
helper.rb
test_foo.rb
HISTORY.md (or CHANGELOG.md)
LICENSE.txt
README.md
foo.gemspec
Die share/
ist selten und ist manchmal data/
statt genannt. Es ist für allgemeine nicht-Ruby-Dateien.Die meisten Projekte brauchen es nicht, aber selbst wenn sie es oft tun, wird alles nur in lib/
gehalten, obwohl das wahrscheinlich keine Best Practice ist.
Das test/
Verzeichnis könnte spec/
aufgerufen werden, wenn BDD statt TDD verwendet wird, obwohl Sie auch features/
sehen könnte, wenn Gurke verwendet wird, oder wenn demo/
QED verwendet wird.
In diesen Tagen foo.gemspec
kann einfach .gemspec
- besonders wenn es nicht manuell gepflegt wird.
Wenn Ihr Projekt Befehlszeile ausführbaren Dateien hat, dann fügen:
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
Zudem sind die meisten Ruby-Projekt haben:
Gemfile
Rakefile
Die Gemfile
für die Verwendung von Bündler ist, und die Rakefile
ist für Rake Werkzeug bauen. Aber es gibt andere Möglichkeiten, wenn Sie verschiedene Werkzeuge verwenden möchten.
Ein paar andere nicht so ungewöhnlich Dateien:
VERSION
MANIFEST
Die VERSION
Datei enthält nur die aktuelle Versionsnummer. Und die MANIFEST
(oder Manifest.txt
) enthält eine Liste von Dateien, die in den Paketdateien des Projekts enthalten sein sollen (z. B. Gem-Paket).
Was Sie vielleicht anders sehen, aber Nutzung ist sporadisch:
config/
doc/ (or docs/)
script/
log/
pkg/
task/ (or tasks/)
vendor/
web/ (or site/)
Wo config/
verschiedene Konfigurationsdateien enthält; doc/
enthält entweder erzeugte Dokumentation, z. RDoc oder manchmal manuell gepflegte Dokumentation; script/
enthält Shell-Skripte zur Verwendung durch das Projekt; log/
enthält erzeugte Projektprotokolle, z.B. Testberichte; pkg/
enthält erzeugte Paketdateien, z.B. foo-1.0.0.gem
; task/
könnte verschiedene Task-Dateien wie foo.rake
oder foo.watchr
halten; vendor/
enthält Kopien der anderen Projekte, z.B. git Submodule; und schließlich enthält web/
die Website-Dateien des Projekts.
Dann werden einige Werkzeug, um bestimmte Dateien, die auch relativ häufig sind:
.document
.gitignore
.yardopts
.travis.yml
Sie sind ziemlich selbsterklärend.
Schließlich will ich hinzufügen, dass ich persönlich eine .index
Datei hinzufügen und eine var/
Verzeichnis die Datei (Suche nach „Rubyworks Indexer“ für mehr darüber) zu bauen und haben oft ein work
Verzeichnis, so etwas wie:
work/
NOTES.md
consider/
reference/
sandbox/
Nur eine Art Schrottplatz für Entwicklungszwecke.
Das neueste newgem produziert viel weniger cruft was nett ist. –