Fixed http tests to use local libs and run better on win32
[catagits/Catalyst-Runtime.git] / lib / Catalyst.pm
index 7cde581..dc17610 100644 (file)
@@ -36,7 +36,7 @@ our $DETACH    = "catalyst_detach\n";
 require Module::Pluggable::Fast;
 
 # Helper script generation
-our $CATALYST_SCRIPT_GEN = 6;
+our $CATALYST_SCRIPT_GEN = 8;
 
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log/;
@@ -119,7 +119,7 @@ so C<Catalyst::Plugin::My::Module> becomes C<My::Module>.
 
     use Catalyst 'My::Module';
 
-Special flags like -Debug and -Engine can also be specifed as arguments when
+Special flags like -Debug and -Engine can also be specified as arguments when
 Catalyst is loaded:
 
     use Catalyst qw/-Debug My::Module/;
@@ -805,7 +805,6 @@ sub prepare {
                 arguments        => [],
                 body_parameters  => {},
                 cookies          => {},
-                handle           => \*STDIN,
                 headers          => HTTP::Headers->new,
                 parameters       => {},
                 query_parameters => {},
@@ -818,7 +817,6 @@ sub prepare {
             {
                 body    => '',
                 cookies => {},
-                handle  => \*STDOUT,
                 headers => HTTP::Headers->new(),
                 status  => 200
             }
@@ -910,8 +908,8 @@ Prepare a chunk of data before sending it to HTTP::Body.
 
 =cut
 
-sub prepare_body_chunk { 
-    my $c = shift; 
+sub prepare_body_chunk {
+    my $c = shift;
     $c->engine->prepare_body_chunk( $c, @_ );
 }
 
@@ -1029,15 +1027,16 @@ sub prepare_uploads {
 
     if ( $c->debug && keys %{ $c->request->uploads } ) {
         my $t = Text::ASCIITable->new;
-        $t->setCols( 'Filename', 'Type', 'Size' );
-        $t->setColWidth( 'Filename', 37, 1 );
-        $t->setColWidth( 'Type',     24, 1 );
+        $t->setCols( 'Key', 'Filename', 'Type', 'Size' );
+        $t->setColWidth( 'Key',      12, 1 );
+        $t->setColWidth( 'Filename', 28, 1 );
+        $t->setColWidth( 'Type',     18, 1 );
         $t->setColWidth( 'Size',     9,  1 );
         $t->alignCol( 'Size', 'left' );
         for my $key ( sort keys %{ $c->request->uploads } ) {
             my $upload = $c->request->uploads->{$key};
             for my $u ( ref $upload eq 'ARRAY' ? @{$upload} : ($upload) ) {
-                $t->addRow( $key, $u->type, $u->size );
+                $t->addRow( $key, $u->filename, $u->type, $u->size );
             }
         }
         $c->log->debug( "File Uploads are:\n" . $t->draw );
@@ -1353,7 +1352,14 @@ data, if known.
 
 =cut
 
-sub write { my $c = shift; return $c->engine->write( $c, @_ ) }
+sub write {
+    my $c = shift;
+
+    # Finalize headers if someone manually writes output
+    $c->finalize_headers;
+
+    return $c->engine->write( $c, @_ );
+}
 
 =back
 
@@ -1500,6 +1506,8 @@ Tatsuhiko Miyagawa
 
 Ulf Edvinsson
 
+Yuval Kogman
+
 =head1 AUTHOR
 
 Sebastian Riedel, C<sri@oook.de>