Show
Ignore:
Timestamp:
05/28/08 19:26:45 (5 years ago)
Author:
tokuhirom
Message:

more smart.

Location:
lang/perl/HTTPEx-Declare/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTPEx-Declare/trunk/lib/HTTPEx/Declare.pm

    r12604 r12605  
    11package HTTPEx::Declare; 
    2  
    32use strict; 
    43use warnings; 
    54our $VERSION = '0.01'; 
    6  
    7 use Sub::Name 'subname'; 
    8 use Sub::Exporter; 
    9  
    105use HTTP::Engine; 
     6use Sub::Exporter -setup => { 
     7    exports => [qw/middlewares interface run/], 
     8    groups  => { default => [':all'] } 
     9}; 
    1110 
    1211my $interface; 
    1312 
    14 my %exports = ( 
    15     middlewares => sub { 
    16         subname 'HTTPEx::Declare::middlewares' => sub (@) { 
    17             HTTP::Engine->load_middlewares( @_ ); 
    18         } 
    19     }, 
    20     interface => sub { 
    21         subname 'HTTPEx::Declare::interface' => sub ($$) { 
    22             $interface = { 
    23                 module => shift, 
    24                 args   => shift, 
    25             }; 
    26         } 
    27     }, 
    28     run => sub { 
    29         subname 'HTTPEx::Declare::run' => sub (&;@) { 
    30             unless ($interface) { 
    31                 require Carp; 
    32                 Carp::croak 'please define interface previously'; 
    33             } 
    34             my $request_handler = shift; 
    35             my $engine = HTTP::Engine->new( 
    36                 interface => { 
    37                     module          => $interface->{module}, 
    38                     args            => $interface->{args}, 
    39                     request_handler => $request_handler, 
    40                 }, 
    41             ); 
    42             undef $interface; 
    43             $engine->run(@_); 
    44         } 
    45     }, 
    46 ); 
     13sub middlewares (@) { 
     14    HTTP::Engine->load_middlewares(@_); 
     15} 
    4716 
    48 Sub::Exporter::setup_exporter({ 
    49     exports => \%exports, 
    50     groups  => { default => [':all'] } 
    51 }); 
     17sub interface($$) { 
     18    $interface = { 
     19        module => shift, 
     20        args   => shift, 
     21    }; 
     22} 
     23 
     24sub run(&;@) { 
     25    unless ($interface) { 
     26        require Carp; 
     27        Carp::croak 'please define interface previously'; 
     28    } 
     29    my $request_handler = shift; 
     30    my $engine          = HTTP::Engine->new( 
     31        interface => { 
     32            module          => $interface->{module}, 
     33            args            => $interface->{args}, 
     34            request_handler => $request_handler, 
     35        }, 
     36    ); 
     37    undef $interface; 
     38    $engine->run(@_); 
     39} 
    5240 
    53411; 
  • lang/perl/HTTPEx-Declare/trunk/t/perlcriticrc

    r12602 r12605  
    11[TestingAndDebugging::ProhibitNoStrict] 
    22allow=refs 
     3 
     4[Subroutines::ProhibitSubroutinePrototypes] 
     5severity = cruel