2017-03-03

Rakefile でサフィックス・ルールを書く

Makefile で言うところのサフィックス・ルールを、Rakefile で書く方法を調べてみた。

Rakefile では rule を使ってルールを設定する。ここでは、plantuml コマンドを使って、PNG 画像を出力する Rakefile を例に説明す2。

PLANTUML = "~/bin/plantuml.jar"

task :default => :uml

desc "UML 図を更新する"
task :uml => ["profile.png", "timeline.png"]

rule '.png' => '.plantuml' do |t|
  sh "java -jar #{PLANTUML} #{t.source}"
end

plantuml のコマンドは次の書式で使う。

$ java -jar ~/path/to/plantuml.jar 入力ファイル名

plantuml.jar への PATH を変数 PLANTUML にセット。

タスク :uml を実行すると「UML 図を更新」するようにした。rake uml で profile.png 及び timeline.png が作成される。出来上がるファイル名はダブル・クォーテーションで囲む必要がある。これを忘れてて、rake uml が実行できない、と少し悩んだ。

最後に rule を設定している。拡張子 .png ファイルは、拡張子 .plintuml を持つファイルが更新された時に次行のコマンドを実行して作成される。

No comments:

Post a Comment