一個標準的Ruby項目的核心結構基本上是:
lib/
foo.rb
foo/
share/
foo/
test/
helper.rb
test_foo.rb
HISTORY.md (or CHANGELOG.md)
LICENSE.txt
README.md
foo.gemspec
的share/
是罕見的,有時也稱爲data/
代替。它用於通用的非ruby文件。大多數項目不需要它,但即使他們做了很多次,一切都保存在lib/
中,儘管這可能不是最佳實踐。
的test/
目錄可能被稱爲spec/
如果正在使用的,而不是TDD BDD,雖然你可能還會看到features/
如果使用黃瓜,或demo/
如果使用QED。
這幾天foo.gemspec
只能是.gemspec
- 特別是如果它不是手動維護。
如果你的項目有命令行可執行文件,然後添加:
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
此外,大多數Ruby項目的有:
Gemfile
Rakefile
的Gemfile
是使用捆紮機,而Rakefile
是耙構建工具。但是如果您想使用不同的工具,還有其他選擇。
其他一些不那麼常見的文件:
VERSION
MANIFEST
的VERSION
文件只包含當前的版本號。 MANIFEST
(或Manifest.txt
)包含要包含在項目包文件中的文件列表(例如,gem包)。
還有什麼你可能會看到,但用法是零星的:
config/
doc/ (or docs/)
script/
log/
pkg/
task/ (or tasks/)
vendor/
web/ (or site/)
凡config/
包含各種配置文件; doc/
包含生成的文檔,例如RDoc,或有時手動維護的文檔; script/
包含供項目使用的shell腳本; log/
包含生成的項目日誌,例如測試覆蓋率報告; pkg/
保存生成的包文件,例如, foo-1.0.0.gem
; task/
可以容納各種任務文件,如foo.rake
或foo.watchr
; vendor/
包含其他項目的副本,例如git submodules;最後web/
包含該項目的網站文件。
那麼有些工具特定文件也比較常見:
.document
.gitignore
.yardopts
.travis.yml
他們是相當不言自明。
最後,我要補充的是,我個人添加.index
文件和var/
目錄建立一個文件(搜索「Rubyworks索引」瞭解更多有關),往往有一個work
目錄,是這樣的:
work/
NOTES.md
consider/
reference/
sandbox/
只是一種用於開發目的的廢棄物。
最新的newgem產生更少的cruft這很好。 – 2008-12-30 04:31:17