KamuiでText::Xslate

nekokakさんのWAF Kamuiでは標準のViewにTMTとTTが使えるんですが、
TXを使用してみたくて試してみました。

基本的にはTTのコードをこぴってるだけです。

package MyAPP::View::TX;
use Kamui;
use base 'Kamui::View';
use Text::Xslate;
use File::Spec;
use Encode;

sub render {
    my ($class, $context) = @_;

    my $template = $context->load_template || $context->guess_filename;

    my $tx = Text::Xslate->new(
        syntax => 'TTerse',
        module => ['Text::Xslate::Bridge::TT2Like'],
        path   => [ '.', File::Spec->catfile($context->conf->{view}->{tx}->{path}) ],
        cache  => 1,
        cache_dir => '/tmp/' . $ENV{USER} . "/",
        function => $context->conf->{view}->{tx}->{function},
    );

    my $output = $tx->render(
        $template,
        +{
            %{ $context->stash },
            c => $context,
        }
    ) or die "error: $@";

    my $res = $context->res;
    $res->status('200');
    $res->body($output);
    $res->headers([ 'Content-Type' => 'text/html' ]);
    $res;
}

1;

こんなんで動きました。
すごく単純なCGIで試したんですがTTから変更すると
体感できるほど早くなりました。

KamuiとSkinnyとXslateお勧めです
(Kamuiは初心者の人にはインストールの敷居高いかもしれないけど)

追記:nekokakさんにTffanyって教えて頂いたのですが
   たしかにですね。YAPCで名前だけ聞いてて使ってなかったんでやってみないと