rakeの概要

やったこと

参考資料を読む、サンプルのハンズオン

参考資料

rakeについて

  • コマンドラインツールを扱うライブラリ
  • Ruby-Makeの略でRubyで何かを作ったり、定型的な処理をしたいときに役立ってくれるツール
  • Rakefileに実行内容を記述しrakeコマンドで呼び出す

taskについて

  • タスク名と依存(事前)タスクを設定
  • タスクに”作業”を割り振る
  • すでに生成されているファイルなどがあってもタスクは実行される
  • defaultタスクは予約語
# 例
task "タスク名" => ["依存タスク群"] do
 作業内容
end
# rakeコマンド実行
$ rake タスク名

# deafultに設定してあればtaskの指定を省略出来る
$ rake

ファイルタスクについて

  • ファイル生成特化タスク
  • taskと同様に名称、依存ファイル、作業内容を定義する
  • taskと違い、差分だけビルドする(時短、リソースの合理化)
  • Kernel#fileのインスタンスメソッド

    よく使うメソッド

  • name - タスクの名称。ファイルタスクの場合、ファイルパス。
  • prerequisites - 依存先であるタスク名の配列。
# 例1
file "ファイル名" => ["依存ファイル群"] do
 hoge
end
# 例2 ブロック引数にはタスクそのものを渡す事が出来る
file "hoge" => ["fuga", "foo"] do |t|
  puts "タスク名は#{t.name}、依存ファイルは#{t.prerequisites.join('')}です"
end

ディレクトリ生成機能

  • directoryメソッドを使う
  • ブロックは追加出来ない
# taskでそのまま書くと
task "mkdir" do
  mkdir hoge_dir
end
# directoryを使う
directory hoge_dir
# ネストしていても一発で作成できる
directory "./nest1/nest2/dir"
タスクの説明文

タスクの上に書く

desc "hogeしてくれるタスク"
task "hoge"

rake -tで一覧を確認

★タスクの動的生成

rubyで書ける!DSLによる賜物とのこと
1.upto(5) { |i|
  desc "task no.#{i}"
  task "task_#{i}" do |t|
    puts "Invoke #{t.name}"
  end
}
$ rake -T
rake task_1  # task no.1
rake task_2  # task no.2
rake task_3  # task no.3
rake task_4  # task no.4
rake task_5  # task no.5

Cプログラム実行とコンパイル

gist2b85770c470a10d1f9052e70c12b5145

本日のお試しツール

markdownの下書き用にBoostnoteを導入。 Electron謹製で気になっていた。 リニアに出るキレイなプレビューにニンマリ(´∀`) ドキュメント書き上達したい。

所感

久々にrubyを触った( ´∀`)

rakeはパワフルなツールで奥深いと思った。

rubyの頭に切り替えるため、 夏休みに入ったら途中でやめてしまったチェリー本を終わらせたいと思う🍒 それでまた言語仕様の理解を深めたい。