=head1 METHODS
-=head2 $self->finalize_output
-
-<obsolete>, see finalize_body
=head2 $self->finalize_body($c)
=head2 $self->finalize_cookies($c)
+Create CGI::Cookies from $c->res->cookies, and set them as response headers.
+
=cut
sub finalize_cookies {
=head2 $self->finalize_error($c)
+Output an apropriate error message, called if there's an error in $c
+after the dispatch has finished. Will output debug messages if Catalyst
+is in debug mode, or a `please come back later` message otherwise.
+
=cut
sub finalize_error {
. '</code></p>'
} @{ $c->error };
$error ||= 'No output';
+ $error = qq{<pre wrap="">$error</pre>};
$title = $name = "$name on Catalyst $Catalyst::VERSION";
- $name = "<h1>$name</h1>";
+ $name = "<h1>$name</h1>";
# Don't show context in the dump
delete $c->req->{_context};
push @infos, sprintf <<"EOF", $name, $value;
<h2><a href="#" onclick="toggleDump('dump_$i'); return false">%s</a></h2>
<div id="dump_$i">
- <pre>%s</pre>
+ <pre wrap="">%s</pre>
</div>
EOF
$i++;
<pre>
(en) Please come back later
(de) Bitte versuchen sie es spaeter nocheinmal
-(nl) Gelieve te komen later terug
+(at) Konnten's bitt'schoen spaeter nochmal reinschauen
(no) Vennligst prov igjen senere
-(fr) Veuillez revenir plus tard
-(es) Vuelto por favor mas adelante
-(pt) Voltado por favor mais tarde
-(it) Ritornato prego piĆ¹ successivamente
+(dk) Venligst prov igen senere
+(pl) Prosze sprobowac pozniej
</pre>
$name = '';
font-size: medium;
font-weight: normal;
}
+ /* from http://users.tkk.fi/~tkarvine/linux/doc/pre-wrap/pre-wrap-css3-mozilla-opera-ie.html */
+ /* Browser specific (not valid) styles to make preformatted text wrap */
+ pre {
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ }
</style>
</head>
<body>
</body>
</html>
+
+ # Trick IE
+ $c->res->{body} .= ( ' ' x 512 );
+
+ # Return 500
+ $c->res->status(500);
}
=head2 $self->finalize_headers($c)
+Abstract method, allows engines to write headers to response
+
=cut
sub finalize_headers { }
=head2 $self->finalize_uploads($c)
+Clean up after uploads, deleting temp files.
+
=cut
sub finalize_uploads {
=head2 $self->prepare_body($c)
+sets up the L<Catalyst::Request> object body using L<HTTP::Body>
+
=cut
sub prepare_body {
while ( my $buffer = $self->read($c) ) {
$c->prepare_body_chunk($buffer);
}
+
+ # paranoia against wrong Content-Length header
+ my $remaining = $self->read_length - $self->read_position;
+ if ($remaining > 0) {
+ $self->finalize_read($c);
+ Catalyst::Exception->throw("Wrong Content-Length value: ". $self->read_length);
+ }
}
}
=head2 $self->prepare_body_chunk($c)
+Add a chunk to the request body.
+
=cut
sub prepare_body_chunk {
=head2 $self->prepare_body_parameters($c)
+Sets up parameters from body.
+
=cut
sub prepare_body_parameters {
=head2 $self->prepare_connection($c)
+Abstract method implemented in engines.
+
=cut
sub prepare_connection { }
=head2 $self->prepare_cookies($c)
+Parse cookies from header. Sets a L<CGI::Cookie> object.
+
=cut
sub prepare_cookies {
=head2 $self->prepare_parameters($c)
+sets up parameters from query and post parameters.
+
=cut
sub prepare_parameters {
=head2 $self->prepare_path($c)
+abstract method, implemented by engines.
+
=cut
sub prepare_path { }
=head2 $self->prepare_query_parameters($c)
+process the query string and extract query parameters.
+
=cut
sub prepare_query_parameters {
=head2 $self->prepare_read($c)
+prepare to read from the engine.
+
=cut
sub prepare_read {
=head2 $self->prepare_request(@arguments)
+Populate the context object from the request object.
+
=cut
sub prepare_request { }
=head2 $self->prepare_write($c)
+Abstract method. Implemented by the engines.
+
=cut
sub prepare_write { }
=head2 $self->run($c)
+Start the engine. Implemented by the various engine classes.
+
=cut
sub run { }
=head2 $self->write($c, $buffer)
+Writes the buffer to the client. Can only be called once for a request.
+
=cut
sub write {
print STDOUT $buffer;
}
+=head2 $self->finalize_output
+
+<obsolete>, see finalize_body
+
=head1 AUTHORS
Sebastian Riedel, <sri@cpan.org>