Show
Ignore:
Timestamp:
11/03/08 15:13:27 (5 years ago)
Author:
walf443
Message:

HTTP::Engineのミドルウェアを設定で足せるようにした

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/mobirc/trunk/lib/App/Mobirc/Plugin/Component/HTTPD.pm

    r18451 r22616  
    1010use App::Mobirc::Web::Middleware::Encoding; 
    1111use App::Mobirc::Web::Middleware::MobileAgent; 
     12 
     13use UNIVERSAL::require; 
    1214 
    1315has address => ( 
     
    2325); 
    2426 
     27has middlewares => ( 
     28    is      => 'ro', 
     29    isa     => 'ArrayRef', 
     30    default => sub { [] }, 
     31); 
     32 
    2533hook run_component => sub { 
    2634    my ( $self, $global_context ) = @_; 
     35 
     36    my $request_handler = App::Mobirc::Web::Middleware::Encoding->wrap( \&App::Mobirc::Web::Handler::handler ); 
     37    for my $mw ( @{ $self->middlewares } ) { 
     38      $mw->require or die $@; 
     39      $request_handler = $mw->wrap($request_handler); 
     40    } 
    2741 
    2842    HTTP::Engine->new( 
     
    3448                alias => 'mobirc_httpd', 
    3549            }, 
    36             request_handler => App::Mobirc::Web::Middleware::Encoding->wrap( \&App::Mobirc::Web::Handler::handler ), 
     50            request_handler => $request_handler, 
    3751        } 
    3852    )->run;