Ruby/Rubyの基礎知識

RubyのMake、Rakeの使い方(2ページ目)

Rakeは、Unixプログラミングで古くから使われてきたmakeのように使えるツールです。Makefileの代わりとなる"Rakefile"にRubyでタスクを記述します。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

Rakefile

Rakefileの文法は、通常のRubyプログラムにいくつかrake用の記述を追加したものです。つまりふつうRubyプログラムで実行可能なことは何でもできます。

最初の例として、挨拶だけするタスクを定義してみます。以下の内容をRakefileという名前で保存してください。

task :taskname がタスクの定義で、do...endの中にタスクの内容を記述します。これで、コマンドラインからrake helloを叩けばhelloという名前で定義したタスクが実行されます。

ここで、次のように:default:helloに設定しておけば、

rakeを叩くだけで:helloを実行できます。利用頻度の高いタスクはデフォルトにしてしまうと良いでしょう。

rakeに引数を渡す

先ほどの:helloタスクによく似た:goodbyeタスクを作成し、今度は相手の名前を引数に受け取るようにしてみましょう。task :goodbye, [:name, :nickname]とタスク名の後に引数リストを追加し、さらにブロック引数をふたつ(targs)定義します。

ここでtRake::Taskクラスのインスタンス、argsRake::TaskArgumentsクラスのインスタンスです。Rake::TaskArgumentsに対して引数名のメソッドを呼び出すことで、引数が取得できます。

引数付きのrakeコマンドを使うためには、以下のように、タスク名に続けた角カッコ([])の中にカンマ区切りで渡します。環境によってはダブルクオート("")で囲う必要があるので注意して下さい。

namespace(名前空間)

似たようなタスクをまとめたい時は、namespace(名前空間)を定義します。たとえば次のように、計算に関連するタスクをnamespace :mathdo...endブロックにまとめてみましょう。

namespace付きで定義したタスクを実行するには、math:squareのようにコロンでnamespaceを区切って指定します。

descでタスクに説明をつける

タスクが増えて来ると、どんなタスクが使えるのか一覧で見たくなります。そんなときに便利なのがdescrake -Tです。

今まで定義した:hello, math:square, math:cubeの1行上に、desc メソッドと説明文を追加します。

このdesc文はコメント代わりにコードの理解を助けてくれるばかりでなく、rake -Tを実行すると、次のようにタスク名とその説明を一覧表示してくれます。

次のページでは、ディレクトリやファイルを扱うrakeのユーティリティメソッドを紹介します。

  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます