Rubyでmake
Rubyにmakeがあったら面白いんじゃないかと言う発想。
make("index.html", $0, "wiki.db") do # HTML生成 end
文法がそっくりにできそう。
残念ながら、多重の依存関係は無い。
module Make module_function # makeが必要かどうか判断する # true 必要 def make?(target, *prereq) return true unless File.exist?(target) # targetが存在しない return true if prereq.length.zero? # 依存ファイルが無い target_ctime = File.stat(target).ctime prereq.each do |req| return true if target_ctime < File.stat(req).ctime end return false end # target : prereq1 prereq2 .... # { ruby code } def make(target, *prereq) if make?(target, *prereq) yield end end end
makeでは出来ない面白いことが出来そうな気がする。
実は、サンプルコードが凄かった。
- The AWK Programming Language - サポートページ
- awkcode.txt - 問題のサンプルコード
サンプルコードがAWKで固めてある!!!!
05.awk { print $1, $3 } 06.awk { print $1, $2 * $3 } 07.awk { print NR, $0 }
固めかた。
{print FILENAME, $0}
解凍は面倒。
AWKはやっぱすげぇ。
追記
id:Roccoさんからのツッコミより。
- ITmedia エンタープライズ:第3回 話題騒然! 「言語内DSL」の概念とRake【前編】 (2/2)
- Rakeを知りました。先がいた(笑
- ちと訂正。