rake taskで可変長引数を使う

rake taskで可変長引数を使う

約1年間Railsエンジニアやってて初めてrake task書いた。

その時のめも。

to_a メソッドを使う

namespace :test_task do
  desc '可変長引数を受け取るtask'
  task :hoge, ['huga'] => :environment do |_task, args|
    p args.to_a
    p args.huga
  end
end

実行する。

$ bundle exec rake test_task:hoge[1,2,3,4]
["1", "2", "3", "4"]
"1"

argsHashではなくRake::TaskArgumentsであり、Rake::TaskArgumentsインスタンスメソッドである to_aを使うことで引数の値をすべて取得する事ができる

  • リファレンス

http://www.rubydoc.info/gems/rake/12.0.0/Rake/TaskArguments#to_a-instance_method