月別アーカイブ: 2011年7月

作ったPlack::Middleware::StackTrace::ParseMessageを

 

Plack::Middleware::StackTrace::ParseMessageってのを作ってみた。名前が微妙なので考え直すかも。

テンプレートエンジンが投げる例外がテンプレートファイルを指していることがあります。例えば、Mojo::TemplateとかText::PSTemplateとか、たぶんMasonも。Text::PSTemplateなら下記のようなメッセージでdieします。

Function Product::Lisst is undefined at /home/sugama/my_app/public_html/index.html line 38

StackTrace::ParseMessageを使うと、このような「at … line …」な例外をパースしてDevel::StackTraceの先頭に追加してくれます。すると、Plackのデバッグスクリーンの先頭にテンプレート内のコンテキストが表示されるので、テンプレートのデバッグが楽になります。

ちなみに最近よく使ってるMojoliciousにはこの機能があって、意外とキラーフィーチャーだったりしたので、これでいつでもフレームワーク移行できそう。