標準的な 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/
。
TDD の代わりに BDD が使用されている場合、ディレクトリtest/
が呼び出される可能性があります。spec/
features/
demo/
最近foo.gemspec
は、.gemspec
特に手動で維持されていない場合は特にそうです。
プロジェクトにコマンド ライン実行可能ファイルがある場合は、以下を追加します。
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
さらに、ほとんどの Ruby プロジェクトには次のものがあります。
Gemfile
Rakefile
はGemfile
Bundler を使用するためのもので、Rakefile
は Rake ビルド ツールを使用するためのものです。ただし、別のツールを使用したい場合は、他のオプションがあります。
それほど珍しくない他のいくつかのファイル:
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/
プロジェクトで使用するシェルスクリプトが含まれています。log/
テストカバレッジレポートなど、生成されたプロジェクトログが含まれています。pkg/
生成されたパッケージ ファイルを保持しますfoo-1.0.0.gem
。またはtask/
などのさまざまなタスクファイルを保持できます。git サブモジュールなど、他のプロジェクトのコピーが含まれています。最後に、プロジェクトの Web サイト ファイルが含まれます。foo.rake
foo.watchr
vendor/
web/
次に、比較的一般的ないくつかのツール固有のファイル:
.document
.gitignore
.yardopts
.travis.yml
それらはかなり一目瞭然です。
.index
最後に、私は個人的にファイルとディレクトリを追加してvar/
そのファイルを構築し (詳細については「Rubyworks Indexer」を検索してください)、多くの場合work
、次のようなディレクトリを持っていることを付け加えておきます。
work/
NOTES.md
consider/
reference/
sandbox/
開発目的のスクラップヤードのようなものです。