Rakeの引数
Date:2018-10-17 03:04:27 +0900
Categories: TECHNOLOGY
Categories: TECHNOLOGY
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
ハッシュ的な呼び出しはこっちでシンボルにして呼び出していそう。
Tweet