Note

Rakeの引数

Rakeの引数って args.target_date みたいに取れるなと思っていて、ふと気になったので、

desc 'testタスク' task :test_task, ['target_date'] => :environment do |_task_,_args_| binding.pry end してみた。で、以下のようにしてみたら $ rake test_task[1]

[2] pry(main)> args.target_date => "1" [3] pry(main)> args['target_date'] => "1" [4] pry(main)> args[:target_date] => "1" みたいになった。ハッシュでアクセスする方法に加えてドットでも取れる。 # 一見ハッシュのように見えて [5] pry(main)> args => {:target_date=>"1"}

# Rakeの引数用のクラスだった [6] pry(main)> args.class => Rake::TaskArguments Rake::TaskArgumentsさんがいい感じにしてくれてたみたいですね。 [embed]https://docs.ruby-lang.org/ja/latest/class/Rake=3a=3aTaskArguments.html[/embed] ソースはこちら [embed]https://docs.ruby-lang.org/ja/latest/class/Rake=3a=3aTaskArguments.html[/embed] これを見てる感じ def_method\_missing_(_sym_, *_args_) lookup(_sym_.to_sym) end ↑でドットの呼び出しをしていそう。 def_[]_(_index_) lookup(_index_.to_sym) end ハッシュ的な呼び出しはこっちでシンボルにして呼び出していそう。