tokuhirom's Blog

Tfall - Template for all

http://github.com/tokuhirom/p5-tfall

web application framework を書くときに、MyWAF::View::* を一生懸命かくのは馬鹿馬鹿しいので、共通でつかえるようなインターフェイスをつくった。これは基本的には Tilt という ruby のライブラリの考え方を真似ている。

以下のようなインターフェイスで利用できる。どのようなテンプレートエンジンでも基本的におなじインターフェイスで利用できるので、WAF の作者はこまごましたことを考える必要がない。

use Tfall::Text::Xslate;

my $tmpl = Tfall::Text::Xslate->new();
$tmpl->render(\'Hello, <: $name :>', {name => 'John'});
# => "Hello, John"

呼出の規約は非常に単純であって、new と render の二つのメソッドのみがもとめられている。

new の引数はテンプレートエンジン自体のインスタンスの作成につかわれる。

render の第一引数はテンプレートであって、scalar であれば file name, scalarref であればテンプレートが文字列としてわたされているとして処理する。エラーは例外として報告しなくてはならない(MUST)。