Milk+ea

Weblog Is My Hobby.

Rakeの引数を設定するあたり

引数指定で。

task :task1, [:arg1, :arg2] do |t, args|
  args.with_defaults(arg1: 'foo', arg2: 'bar')
  p args['arg1']
  p args['arg2']
end

#  rake task1["foo","bar"]
#> "foo"
#> "bar"

#  rake task
#> "foo"
#> "bar"

#with_defaultsでデフォルト値を設定します。


環境変数で。

task :pre do
  p "pre:#{ENV['arg1']}"
  p "pre:#{ENV['arg2']}"
end

task :task2 => :pre do |t, args|
  p ENV['arg1']
  p ENV['arg2']
  p Rake::Task[:pre].execute # タスク":pre"を実行
end

#  rake task2 arg1="foo" arg2="bar"
#> "pre:foo"
#> "pre:bar"
#> "foo"
#> "bar"
#> "pre:foo"
#> "pre:bar"

こっちは別タスクでも。