Rake

開発者が独自のタスクを構築するためにHanamiはデフォルトでRakeタスクを提供します。

% bundle exec rake -T
rake environment # Load the full project
rake test        # Run tests (for Minitest)
rake spec        # Run tests (for RSpec)

環境

Rake taskの前提条件として、プロジェクトコード(エンティティ、アクション、ビューなど)にアクセスする必要がある際、以下のように利用することができます。

プロジェクトコード(例えば、リポジトリ)にアクセスできるRakeタスクを構築したいとします。

# Rakefile

task clear_users: :environment do
  UserRepository.new.clear
end
bundle exec rake clear_users

テスト/仕様

これはテストを実行するデフォルトのRakeタスクです

次のコマンドは同等です。

% bundle exec rake
% bundle exec rake test

:test(または:spec)rakeタスクがデフォルトです。

Ruby Serverホスティングエコシステムの互換性

多くのSaaS(Software as a Service)Rubyサーバーホスティングエコシステムは、Ruby on Railsをモデルにしています。例えば、Herokuは、Rubyアプリケーションで次のRakeタスクを見つけることを期待しています。

  • db:migrate
  • assets:precompile

Herokuの場合、デプロイをカスタマイズする方法はないので、Ruby on Railsからこれらの「標準的な」Rakeタスクをサポートしています。

デプロイメントを制御している場合は、これらのRakeタスクに頼るのではなく、hanami コマンドラインを使用してください。