to_a
メソッドを使えば良い。
namespace :hoge do
desc 'Sample'
task :fuga, ['piyo'] => :environment do |task, args|
p args.to_a
p args
end
end
$ bundle exec rake 'hoge:fuga[1,2,3,4]'
["1", "2", "3", "4"]
{:piyo=>"1"}
rake taskの引数はHashと説明されることがあるけど、実際はTaskArgumentsでこいつのto_aメソッドで引数の値をすべて取得できる。
ググっていいやり方見つからなかったからリファレンス眺めてたら普通にあった。
追記 2020-06-01
.extras
メソッドの方が適切な場合が多そう。名前付きパラメータにアサインされなかった分の引数を配列が返る(つまり上記の例だと ["2", "3", "4"]
が返る)
本当に今更だけど公式ドキュメント読んでたら書いてあった...