HTTP::Engine::Middleware
HTTP::Engine::Middleware
http://coderepos.org/share/browser/lang/perl/HTTP-Engine-Middleware/branches/functional/
wrapでrequest_handlerをwrapしていく感じ。後はrequestにメソッド生やす系。
組み立て部分は、以下の部分。
App/Mobirc/Plugin/Component/HTTPD.pm
my $request_handler = App::Mobirc::Web::Middleware::Encoding->wrap( \&App::Mobirc::Web::Handler::handler ); for my $mw ( @{ $self->middlewares } ) { $mw->require or die $@; $request_handler = $mw->wrap($request_handler); }
後は、HTTP::Engineにrequest_handler渡すだけと。なるほど、こういうwrapの仕方もあるなぁと。
# HTTP::Engine::MiddlewareはHTTP::Engineのcontextなし版でなかったりmouse版でもないので、HTTP::EngineのコアからMiddlewareを外す場合には、HTTPx::Middlewareとかの置き場所があるといいですね。