Google Analytics

2010-03-09

[Plack] response bodyを変更するMiddlewareの試作

Webアプリケーションが見事にコードリファレンス一つに抽象化されているPSGIでは、あるアプリケーションに前処理・後処理を追加して、動作をちょっと変更するMiddlewareという仕組みがあって、それで色々と面白いことができそうなので、試しにくだらないものを作ってみました。

今回作ったのは、実用性皆無ですが、後処理を追加することで、出力をすべて大文字にしてくれるMiddlewareです。

必要なモジュール: Plack, Twiggy

使い方: plackup -s Twiggy app.psgi で動かして、http://localhost:5000/streamなどを見てみる。

hirataraさんの記事 PSGI 1.03のMiddlewareを書いてみるを参考にしながら作ってみたのですが、Plack::Component::response_cbの定義をよく見ると、body_filterとして返すコードリファレンスの内容は、return undefをすると$res->[2]に無駄なundefが入るので、return ()の方を使うこのコードの方がよいと思います。

0 コメント:

コメントを投稿