rakeを使う 続き
↓の続き
試してみる
デフォルトタスク
task default:
を設定することで、デフォルトで実行されるタスクを設定することができます。
デフォルトタスクは、rake
コマンドが引数なしに実行された場合に実行するタスクです。
前回、作成したsample_task1
をデフォルトタスクに設定してみます。
task default: :sample_task1
引数なしでrake
コマンドを実行してみます。
$ docker-compose run ruby sh -c "cd /work && rake" hello, rake!
sample_task1
が実行されています。
ネームスペース
ネームスペース (namespace) を使って、グループにまとめることができます。
RailsだとDB関連のコマンドがdb
というネームスペースでまとめられています。
(db:create
, db:migrate
など)
NS1
というネームスペースにsample_task4
を作ります。
namespace :NS1 do desc "sample rake task 4" task :sample_task4 do puts "hello, namespace!" end end
rake -T
で確認してみます。
$ docker-compose run ruby sh -c "cd /work && rake -T" rake NS1:sample_task4 # sample rake task 4 rake sample_task1 # sample rake task 1 rake sample_task2 # sample rake task 2 rake sample_task3[msg] # sample rake task 3
NS1:sample_task4
が追加されています。
実行してみます。
$ docker-compose run ruby sh -c "cd /work && rake NS1:sample_task4" hello, namespace!
cleanタスク
makeではよくcleanを設定することがあると思います。
rakeではrake/clean
をつかって、cleanタスクを作ることができます。
require
で読み込みます。
require 'rake/clean'
rake -T
で確認してみます。
$ docker-compose run ruby sh -c "cd /work && rake -T" rake NS1:sample_task4 # sample rake task 4 rake clean # Remove any temporary products rake clobber # Remove any generated files rake sample_task1 # sample rake task 1 rake sample_task2 # sample rake task 2 rake sample_task3[msg] # sample rake task 3
rake clean
とrake clobber
が追加されています。
基本的な使い分けは、cleanではバックアップファイルを削除、clobberでは自動生成されたファイルとcleanで削除されるファイルを削除する、ようです。
削除するファイルは、CLEAN
やCLOBBER
のinclude
を使って宣言します。
ここでは、CLEANで.txt
ファイルを消してみます。
(バックアップファイルではないけど、お試し用です)
ワイルドカードも利用できるので、ここでは*.txt
を指定しています。
CLEAN.include('*.txt')
適当にファイルを作って試してみます。
$ touch text.txt $ ls Rakefile docker-compose.yml test.txt $ docker-compose run ruby sh -c "cd /work && rake clean" $ ls Rakefile docker-compose.yml
test.txtファイルが削除されました。
終わり