Changeset 29306

Show
Ignore:
Timestamp:
01/30/09 21:21:37 (4 years ago)
Author:
dann
Message:

changed implementation based on new HE::Middleware interface

Location:
lang/perl/HTTP-Engine-Middleware/branches/declare
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTP-Engine-Middleware/branches/declare/lib/HTTP/Engine/Middleware/Encode.pm

    r29266 r29306  
    11package HTTP::Engine::Middleware::Encode; 
    2 use Moose; 
    3  
     2use HTTP::Engine::Middleware; 
    43use Data::Visitor::Encode; 
    54 
    6 sub wrap { 
    7     my ($class, $next) = @_; 
     5before_handle { 
     6    my ( $c, $self, $req ) = @_; 
    87 
    9     sub { 
    10         my $req = shift; 
    11         if (($req->headers->header('Content-Type')||'') =~ /charset=(.+);?$/) { 
    12             # decode parameters 
    13             my $encoding = $1; 
    14             for my $method (qw/params query_params body_params/) { 
    15                 $req->$method( Data::Visitor::Encode->decode($encoding, $req->$method) ); 
    16             } 
     8    if (( $req->headers->header('Content-Type') || '' ) =~ /charset=(.+);?$/ ) 
     9    { 
    1710 
    18             $next->($req); 
     11        # decode parameters 
     12        my $encoding = $1; 
     13        for my $method (qw/params query_params body_params/) { 
     14            $req->$method( 
     15                Data::Visitor::Encode->decode( $encoding, $req->$method ) ); 
    1916        } 
    20     }; 
    21 } 
     17    } 
     18    $req; 
     19}; 
    2220 
    23 1; 
     21__MIDDLEWARE__ 
  • lang/perl/HTTP-Engine-Middleware/branches/declare/lib/HTTP/Engine/Middleware/ModuleReload.pm

    r29266 r29306  
    11package HTTP::Engine::Middleware::ModuleReload; 
    2 use Moose; 
     2use HTTP::Engine::Middleware; 
    33use Module::Reload; 
    44 
    5 sub wrap { 
    6     my ($class, $next) = shift; 
     5before_handle { 
     6    my ( $c, $self, $req ) = @_; 
     7    Module::Reload->check; 
     8    $req; 
     9}; 
    710 
    8     sub { 
    9         my $req = shift; 
    10         Module::Reload->check; 
     11__MIDDLEWARE__ 
    1112 
    12         $next->($req); 
    13     }; 
    14 } 
    15  
    16 1; 
    1713__END__ 
    1814 
  • lang/perl/HTTP-Engine-Middleware/branches/declare/t/200_middlewares/encode.t

    r29273 r29306  
    1010plan skip_all => "HTTP::Engine is not installed: $@" if $@; 
    1111 
    12 eval q{ use HTTP::Engine::Middleware::Encode }; 
     12eval q{ use HTTP::Engine::Middleware }; 
    1313 
    14 plan tests => 3*blocks; 
     14plan tests => 3 * blocks; 
    1515 
    1616use Encode; 
    1717use URI; 
    1818 
    19 filters { 
    20     params => [qw/eval/], 
    21 }; 
     19filters { params => [qw/eval/], }; 
    2220 
    2321run { 
    2422    my $block = shift; 
    2523 
    26     my $request = HTTP::Request->new( GET => $block->uri, ['Content-Type' => $block->content_type] ); 
     24    my $mw = HTTP::Engine::Middleware->new; 
     25    $mw->install( 'HTTP::Engine::Middleware::Encode', ); 
     26 
     27    my $request = HTTP::Request->new( 
     28        GET => $block->uri, 
     29        [ 'Content-Type' => $block->content_type ] 
     30    ); 
    2731 
    2832    my $do_test = sub { 
    2933        my $req = shift; 
    30         ok Encode::is_utf8($req->params->{'nite'}); 
     34        ok Encode::is_utf8( $req->params->{'nite'} ); 
    3135        is_deeply $req->params, $block->params, $block->name; 
    32         HTTP::Engine::Response->new(body => 'OK!'); 
     36        HTTP::Engine::Response->new( body => 'OK!' ); 
    3337    }; 
    3438 
    3539    my $response = HTTP::Engine->new( 
    3640        interface => { 
    37             module => 'Test', 
    38             request_handler => HTTP::Engine::Middleware::Encode->wrap($do_test), 
     41            module          => 'Test', 
     42            request_handler => $mw->handler($do_test), 
    3943        }, 
    4044    )->run($request);