!Mac OS X-10.15.7 !ruby-2.7.1p83$
rake
rakeとはmakeやantのruby版.rakeファイルに書かれていることを自動で処理する.
今までやったことなかったけど結構便利やった.
典型的な例は
task :default do
system 'rake -T'
exit
end
desc 'hello NAME'
task :hello do
name = ARGV[1]
puts "Hello #{name}!"
exit
end
これをRakeファイルに入力
> rake
上記のようにコマンドを入力して実行すると,
rake hello # hello NAME
って出力される.
Rakeファイルの詳しい記述法
- descの後にはrake -Tとした時の説明文(description)
- :defaultはrakeが引数なしで呼ばれた時の動作,
- それ以外はoptionで呼ばれるtaskの名前
- taskの中には標準のruby言語で,動作を記述
Rakeを実用的に使う
gitであげたり(push)引っ張ってきたりする(pull)ときのコマンドっていちいち打つのが面倒くさい.やから自動化しよう
desc 'git push'
task :push do
p comm = "git add -A"
system comm
p comm = "git commit -m \'hoge\'"
system comm
p comm = "git pull origin main"
system comm
p comm = "git push origin main"
system comm
exit
end
こんな感じで,Rakefileに覚えさせると楽.
もうちょっときれいに書いたほうがいいらしい以下のコードは下記のサイトを参照チャート式ruby-appendix-rake
desc 'git push'
task :push2 do
["git add -A",
"git commit -m \'hoge\'",
"git pull origin main",
"git push origin main"].each do |comm|
p comm #puts comm.green after require 'colorize'
system comm
end
exit
end
これめっちゃ便利やけど上のコードやと毎回コミットメッセージがhogeになるからARGVとか使ってメッセージを自由に変更したりできたらかなり実践でも使えると思う.今回はやらないけど毎回コミットメッセージが同じはちょっとね…
- source ~/grad_members_20f/members/okamoto0910/article/c8.org