プロジェクト初期準備
Rubyプロジェクトに必要な準備
このスクリプトはRubyのプロジェクトの初期セットアップを行い、Rakeを使用してテスト、Yardドキュメントの生成、RuboCopによるコードの静的解析を実行する環境を整えます。
mkdir lib test testdata
bundle init
for g in rake yard rubocop minitest
do
grep $g Gemfile || echo 'gem "'${g}'"' >> Gemfile
done
bundle install
cat <<'TESTSCRIPTEOF' > test/test_template.rb
# frozen_string_literal: true
require 'minitest/autorun'
require 'fileutils'
class TestTemplate < Minitest::Test
def setup; end
def teardown; end
def test_compare_files
assert(FileUtils.cmp(__FILE__, __FILE__))
end
end
TESTSCRIPTEOF
cat <<'RAKEFILEEOF' > Rakefile
# frozen_string_literal: true
require 'rake/clean'
require 'rake/testtask'
task :test
Rake::TestTask.new do |t|
t.test_files = FileList['test/test_*.rb']
t.warning = true
end
require 'yard'
YARD::Rake::YardocTask.new do |t|
t.files = FileList.new %w[lib/*.rb lib/**/*.rb]
end
require 'rubocop/rake_task'
RuboCop::RakeTask.new(:rubocop) do |t|
t.patterns = %w[lib test Rakefile]
end
CLOBBER << 'doc'
task default: %i[clobber test yard]
RAKEFILEEOF
rake test
このスクリプトは、Rubyのプロジェクト用の初期化とテスト実行のための設定を行っています。具体的な手順は以下の通りです。
-
mkdir lib test testdata
:lib
、test
、testdata
ディレクトリを作成します。 -
bundle init
: Bundlerを使用してGemfile
を初期化します。 -
for g in rake yard rubocop minitest
:rake
、yard
、rubocop
、minitest
の4つのGemがGemfile
内に記述されているかを確認し、記述されていない場合はGemをGemfile
に追加します。 -
bundle install
:Gemfile
に記述されているGemをインストールします。 -
cat <<'TESTSCRIPTEOF' > test/test_template.rb ... TESTSCRIPTEOF
: ヒアドキュメントを使用して、test/test_template.rb
に単純なMinitestのテストスクリプトを作成します。このテストは、同じファイルを比較して真であることを確認するものです。 -
cat <<'RAKEFILEEOF' > Rakefile ... RAKEFILEEOF
: 同様にヒアドキュメントを使用して、Rakefile
にRakeタスクの設定を追加します。このRakefileには、テストの実行、Yardドキュメントの生成、RuboCopの実行などが定義されています。 -
rake test
: 最後に、Rakeタスクを使用してテストを実行します。これにより、Rakefile
内で指定されたテストが実行されます。