rakeを使ってみる

Railsでrakeをいっぱい叩くけど自分はなんなのかよくわかってなかったです。

rake?

Rakeっていうのはビルドツールの一種らしい。
C言語のmakeと同じ(らしい)。

rake!

rakeコマンドを実行した時、引数を渡すと引数に一致するrakefile内のブロックを実行する。
(あと、rakefile内のブロックに依存関係を持たせることができる。
ここでの依存関係っていうのは、このブロックを実行する前に、このブロックを実行してください。っていうこと。)

コード

rakefile

task :default do
  p "rake done...."
end

task :hoge do
  %w(koji sapporo nau hoge).each do | v |
    p v
  end
end

実行

$rake

結果

"rake done...."

:defaultが実行される。

実行

$rake hoge

結果

"koji"
"sapporo"
"nau"
"hoge"

:hogeが実行される。

依存関係

コード

task :default => :hoge do
  p "rake done...."
end

task :hoge do
  %w(koji sapporo nau hoge).each do | v |
    p v
  end
end

1行目、ブロックへの引数をシンボルからハッシュにした。
そうすると、依存関係を表現できる。

実行

$rake

結果

"koji"
"sapporo"
"nau"
"hoge"
"rake done...."

hogeブロックが先に実行されている。

システムコマンド実行

sh "ls -la"
sh "dir"


オッケー☆



参考:http://ruby2008.seesaa.net/article/147719866.html