Plack::Middleware::DoCoMoGUID

ドコモ向けのサイトを書いている場合に自分サイトのどのページでもiモードIDをとりたいというのはよくあることですが、
PlackのMiddlewareでやれそうかなと思いつつ、他に書いてる人がいなそうだったので書いてみました。

http://github.com/walf443/p5-plack-middleware-docomoguid

Plack::Middleware::DoCoMoGUIDは3つのMiddlewareを複合したものになっていて、3つをバラバラに使いたい人は使えるようにしときつつ、
個人的にはセットで使いたいのでデフォルトセットを1つ提供するという感じにしてあります。

Middleware::DoCoMoGUID::CheckParamはguid=ONに相当するパラメータがあるかチェックして、なければ現在のアドレスにguid=ONをつけたアドレスへリダイレクトします。

Middleware::DoCoMoGUID::HTMLStickyQueryはステータスコードが200でContentTypeがtext/htmlの場合に、HTMLStickyQuery::DoCoMoGUIDを利用してHTML内の相対リンクおよびformのactionにguid=onを付加します。

Middleware::DoCoMoGUID::RedirectFilterはアプリケーションから自ホストへのリダイレクトを発行した際にguid=ONが付与されていない場合に付与します。