Changeset 29952 for lang/perl/HTTP-Engine
- Timestamp:
- 02/12/09 15:24:12 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/HTTP-Engine/branches/any-moose/lib/HTTP/Engine/Interface.pm
r29947 r29952 1 1 package HTTP::Engine::Interface; 2 2 use 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 } 3 use Any::Moose ( 4 '::Util' => [qw/apply_all_roles/], 5 ); 13 6 14 7 my $ARGS; … … 78 71 $@ and die $@; 79 72 } 73 80 74 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 }); 89 76 } 90 77 … … 94 81 my $writer = _construct_writer($caller, $args)->new; 95 82 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 }); 103 84 } 104 85 … … 117 98 my $apply = sub { push @roles, "HTTP::Engine::Role::ResponseWriter::$_[0]" }; 118 99 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}); 126 101 } else { 127 102 if ($args->{response_line}) { … … 129 104 } 130 105 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); 138 107 } else { 139 108 $apply->('OutputBody'); 140 109 } 141 110 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); 149 112 } else { 150 113 $apply->('WriteSTDOUT'); … … 152 115 $apply->('Finalize'); 153 116 } 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); 161 120 } 162 121 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)