remove regexp for good
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index 2a1ed87..a5c177a 100644 (file)
@@ -59,16 +59,17 @@ See L<Catalyst>.
 Finalize body.  Prints the response output as blocking stream if it looks like
 a filehandle, otherwise write it out all in one go.  If there is no body in
 the response, we assume you are handling it 'manually', such as for nonblocking
-style or asynchronous streaming responses.  You do this by calling L<\write>
-several times (which sends HTTP headers if needed) or you close over C<$response->write_fh>.
+style or asynchronous streaming responses.  You do this by calling L</write>
+several times (which sends HTTP headers if needed) or you close over
+C<< $response->write_fh >>.
 
-See L<Catalyst::Response\write> and L<Catalyst::Response\write_fh> for more.
+See L<Catalyst::Response/write> and L<Catalyst::Response/write_fh> for more.
 
 =cut
 
 sub finalize_body {
     my ( $self, $c ) = @_;
-    return if $c->response->has_write_fh;
+    return if $c->response->_has_write_fh;
 
     my $body = $c->response->body;
     no warnings 'uninitialized';
@@ -492,7 +493,10 @@ sub prepare_query_parameters {
     my $env = $c->request->env;
 
     if(my $query_obj = $env->{'plack.request.query'}) {
-         $c->request->query_parameters($query_obj->as_hashref_mixed);
+         $c->request->query_parameters(
+           $c->request->_use_hash_multivalue ?
+              $query_obj->clone :
+              $query_obj->as_hashref_mixed);
          return;
     }
 
@@ -504,10 +508,6 @@ sub prepare_query_parameters {
     # (yes, index() is faster than a regex :))
     if ( index( $query_string, '=' ) < 0 ) {
         $c->request->query_keywords($self->unescape_uri($query_string));
-        $env->{'plack.request.query'} ||= Hash::MultiValue->new(
-          map { (URI::Escape::uri_unescape($_), '') }
-            split(/\+/, $query_string, -1));
-
         return;
     }
 
@@ -539,8 +539,10 @@ sub prepare_query_parameters {
         }
     }
 
-    $env->{'plack.request.query'} ||= Hash::MultiValue->from_mixed(\%query);
-    $c->request->query_parameters( \%query );
+    $c->request->query_parameters( 
+      $c->request->_use_hash_multivalue ?
+        Hash::MultiValue->from_mixed(\%query) :
+        \%query);
 }
 
 =head2 $self->prepare_read($c)
@@ -582,7 +584,6 @@ sub prepare_uploads {
 
     my $uploads = $request->_body->upload;
     my $parameters = $request->parameters;
-    my @plack_uploads;
     foreach my $name (keys %$uploads) {
         my $files = $uploads->{$name};
         my @uploads;
@@ -597,14 +598,9 @@ sub prepare_uploads {
                filename => $upload->{filename},
               );
             push @uploads, $u;
-
-            # Plack compatibility.
-            my %copy = (%$upload, headers=>$headers);
-            push @plack_uploads, $name, Plack::Request::Upload->new(%copy);
         }
         $request->uploads->{$name} = @uploads > 1 ? \@uploads : $uploads[0];
 
-
         # support access to the filename as a normal param
         my @filenames = map { $_->{filename} } @uploads;
         # append, if there's already params with this name
@@ -620,8 +616,6 @@ sub prepare_uploads {
             $parameters->{$name} = @filenames > 1 ? \@filenames : $filenames[0];
         }
     }
-
-    $self->env->{'plack.request.upload'} ||= Hash::MultiValue->new(@plack_uploads);
 }
 
 =head2 $self->write($c, $buffer)