Show
Ignore:
Timestamp:
02/12/09 15:24:12 (6 years ago)
Author:
tokuhirom
Message:

- '::Util' => [qw/apply_all_roles/], works with Mouse svn HEAD.
- add_method works with mouse :)
- and simplify the code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTTP-Engine/branches/any-moose/lib/HTTP/Engine/Interface.pm

    r29947 r29952  
    11package HTTP::Engine::Interface; 
    22use Any::Moose; 
    3  
    4 BEGIN { 
    5     if (Any::Moose::is_moose_loaded()) { 
    6         require Moose::Util; 
    7         *apply_all_roles = \&Moose::Util::apply_all_roles;         
    8     } 
    9     else { 
    10         *apply_all_roles = \&Mouse::Util::apply_all_roles; 
    11     } 
    12 } 
     3use Any::Moose ( 
     4    '::Util' => [qw/apply_all_roles/], 
     5); 
    136 
    147my $ARGS; 
     
    7871        $@ and die $@; 
    7972    } 
     73 
    8074    my $instance = $builder->new; 
    81  
    82     if (Any::Moose::is_moose_loaded()) { 
    83         $caller->meta->add_method(request_builder => sub { $instance }); 
    84     } 
    85     else { 
    86         no strict 'refs'; 
    87         *{"$caller\::request_builder"} = sub { $instance }; 
    88     } 
     75    $caller->meta->add_method(request_builder => sub { $instance }); 
    8976} 
    9077 
     
    9481    my $writer = _construct_writer($caller, $args)->new; 
    9582     
    96     if (Any::Moose::is_moose_loaded()) { 
    97         $caller->meta->add_method(response_writer => sub { $writer }); 
    98     } 
    99     else { 
    100         no strict 'refs'; 
    101         *{"$caller\::response_writer"} = sub { $writer }; 
    102     } 
     83    $caller->meta->add_method(response_writer => sub { $writer }); 
    10384} 
    10485 
     
    11798        my $apply = sub { push @roles, "HTTP::Engine::Role::ResponseWriter::$_[0]" }; 
    11899        if ($args->{finalize}) { 
    119             if (Any::Moose::is_moose_loaded()) { 
    120                 $writer->meta->add_method(finalize => $args->{finalize});                
    121             } 
    122             else { 
    123                 no strict 'refs'; 
    124                 *{"$writer\::finalize"} = $args->{finalize}; 
    125             } 
     100            $writer->meta->add_method(finalize => $args->{finalize});                
    126101        } else { 
    127102            if ($args->{response_line}) { 
     
    129104            } 
    130105            if (my $code = $args->{output_body}) { 
    131                 if (Any::Moose::is_moose_loaded()) { 
    132                     $writer->meta->add_method(output_body => $code); 
    133                 }  
    134                 else { 
    135                     no strict 'refs';                     
    136                     *{"$writer\::output_body"} = $code; 
    137                 } 
     106                $writer->meta->add_method(output_body => $code); 
    138107            } else { 
    139108                $apply->('OutputBody'); 
    140109            } 
    141110            if (my $code = $args->{write}) { 
    142                 if (Any::Moose::is_moose_loaded()) { 
    143                     $writer->meta->add_method(write => $code); 
    144                 }  
    145                 else {    
    146                     no strict 'refs';                                  
    147                     *{"$writer\::write"} = $code; 
    148                 } 
     111                $writer->meta->add_method(write => $code); 
    149112            } else { 
    150113                $apply->('WriteSTDOUT'); 
     
    152115            $apply->('Finalize'); 
    153116        } 
    154         if (Any::Moose::is_moose_loaded()) { 
    155             apply_all_roles($writer, @roles, 'HTTP::Engine::Role::ResponseWriter'); 
    156         } 
    157         else { 
    158             for my $role (@roles, 'HTTP::Engine::Role::ResponseWriter') { 
    159                 apply_all_roles($writer, $role); 
    160             } 
     117 
     118        for my $role (@roles, 'HTTP::Engine::Role::ResponseWriter') { 
     119            apply_all_roles($writer, $role); 
    161120        } 
    162121    }