URI::Template 0.14_01 は draft-03 相当 - Yet Another Hackadelic を書いた後に deparse が何故出来ないのかなぁと思ってたんだけど、理由を考えたら簡単でした。 その前に URI Template の文法について簡単に説明 draft-03 時点での文法はかなり簡単で、ブレースで囲まれた部分をテンプレートと見なすのが原則です。 ABNF のが分かりやすいですね。 op = 1*ALPHA arg = *(reserved / unreserved / pct-encoded) var = varname [ "=" vardefault ] vars = var [ *("," var) ] varname = (ALPHA / DIGIT)*(ALPHA / DIGIT / "." / "_" / "-" ) vardefaul