Projects: Rake Tasks
Hanami ships with default Rake tasks that can be used as prerequisites by developers to build their own tasks.
$ bundle exec rake -T rake environment # Load the full project rake test # Run tests (for Minitest) rake spec # Run tests (for RSpec)
Use this as a Rake task prerequisite when we need to access project code (eg. entities, actions, views, etc..)
Imagine we want to build a Rake task that is able to access project code (eg. a repository)
# Rakefile task clear_users: :environment do UserRepository.new.clear end
$ bundle exec rake clear_users
Test / Spec
This is the default Rake task, which runs the test suite
The following commands are equivalent:
$ bundle exec rake
$ bundle exec rake test
:spec in case you generated the application with
--test=rspec switch) Rake task is the default.
Ruby Server Hosting Ecosystem Compatibility
Many Software as a Service (SaaS) of the Ruby server hosting ecosystem are modeled after Ruby on Rails. For instance, Heroku expects to find the following Rake tasks in a Ruby application:
For Heroku, there isn’t a way to customize the deploy, so we’re supporting these “standard” Rake tasks from Ruby on Rails.
If you are in control of your deployment, don’t rely on these Rake tasks, but please use
hanami command line, instead.
Custom rake tasks
If you want to create a custom rake tasks you can create a
rakelib folder in project root:
$ mkdir rakelib/
And after that create
export.rake for example:
# rakelib/export.rake namespace :export do desc 'Export books to algolia service' task :books do ExportInteractor.new.call end end
Now you can see your custom rake task in the list:
$ bundle exec rake -T rake export:books # Export books to algolia service rake environment # Load the full project rake spec # Run RSpec code examples