« 初CPAN | メイン | Google Analyticsを導入してみた。 »

CGI::Application stash->{template}でテンプレートを指定

CGI::ApplicationでもCatalyst風にStashエントリーのはてなブックマークでハテナオヤさんに

TT Plugin と組み合わせて stash->{template} にテンプレートをセットして出力されるようにしてもいいかもですね。

とのコメントもらったので反応。

たぶん、CGI::Application::Plugin::TTのTEMPLATE_NAME_GENERATORでできる。

sub setup{
    my $self = shift;
    $self->tt_config(
        TEMPLATE_NAME_GENERATOR=>sub{shift->stash->{template} || ""}
    );
}
sub do_index{
    my $self = shift;
    $self->stash->{template}="index.tt";
    $self->tt_process();#空でOK
}


よりCatalystからのコピペが楽になる。
ただ「tt_process」の呼び出しがあるのでそれほど変わりがないと思われますがいかがでしょう。