結局学校の画題を作るのにCatalystを使うことにした。で、かなりひさしぶりにCatalyst触ったんだけどなにかと強力になってるね。以下は現在CPAN最新の5.7001の話。
Viewのレンダリング
昔のCatalystだと自分でRoot.pmのendアクションにViewにフォワードするように書かないとダメだった。
sub end : Private { my ( $self, $c ) = @_; $c->forward('MyApp::View::TT') unless $c->response->body; }
という風。しかし、今のバージョンだと、
sub end : ActionClass('RenderView') {}
とするだけで、よかれと思われるViewにforwardしてくれて、かなり簡単になった。Using RenderView for the Default Viewにつらつらと説明されてる。Viewのレンダーの説明からされているのがCool。
TTSiteヘルパー
Viewをヘルパーで作るときに、
$ script/myapp_create.pl view TT TTSite
とすると。Viewクラスだけじゃなくてレイアウト用のttやらcssやらをごそっと作ってくれる。Ruby on Railsのlayoutと同じような機能が実現される感じ。自分で作るttでも
の中だけ書けば良いのでらくちんらくちん。Create a Catalyst View Using TTSITEを参照した。ていうか、これがあるだけですぐにそれっぽい見た目になるので、とりあえず課題提出が迫っている身としては助かるというか(ぉ。
急いで作ってるのでじっくり調べられてないんだけど、けっこう強化されていたんだなぁ。最近あんまりCatalystな記事を見ないけど、どういう扱いなんかな。もうわりとプロダクションコードで使われてたり?