use strict;
use base 'Class::Accessor::Fast';
use CGI::Cookie;
-use Data::Dumper;
+use Data::Dump qw/dump/;
use HTML::Entities;
use HTTP::Body;
use HTTP::Headers;
sub finalize_body {
my ( $self, $c ) = @_;
- if ( ref $c->response->body && $c->response->body->can('read') ) {
- while ( !$c->response->body->eof() ) {
- $c->response->body->read( my $buffer, $CHUNKSIZE );
+ my $body = $c->response->body;
+ if ( ref $body && ( $body->can('read') || ref($body) eq 'GLOB' ) ) {
+ while ( !eof $body ) {
+ read $body, my ($buffer), $CHUNKSIZE;
last unless $self->write( $c, $buffer );
}
- $c->response->body->close();
+ close $body;
}
else {
- $self->write( $c, $c->response->body );
+ $self->write( $c, $body );
}
}
my ( $self, $c ) = @_;
$c->res->content_type('text/html; charset=utf-8');
- my $name = $c->config->{name} || 'Catalyst Application';
+ my $name = $c->config->{name} || join(' ', split('::', ref $c));
my ( $title, $error, $infos );
if ( $c->debug ) {
# For pretty dumps
- local $Data::Dumper::Terse = 1;
$error = join '', map {
'<p><code class="error">'
. encode_entities($_)
# Don't show response header state in dump
delete $c->res->{_finalized_headers};
- my $req = encode_entities Dumper $c->req;
- my $res = encode_entities Dumper $c->res;
- my $stash = encode_entities Dumper $c->stash;
-
my @infos;
my $i = 0;
for my $dump ( $c->dump_these ) {
my $name = $dump->[0];
- my $value = encode_entities( Dumper $dump->[1] );
+ my $value = encode_entities( dump( $dump->[1] ));
push @infos, sprintf <<"EOF", $name, $value;
<h2><a href="#" onclick="toggleDump('dump_$i'); return false">%s</a></h2>
<div id="dump_$i">
$infos = <<"";
<pre>
(en) Please come back later
+(fr) SVP veuillez revenir plus tard
(de) Bitte versuchen sie es spaeter nocheinmal
(at) Konnten's bitt'schoen spaeter nochmal reinschauen
(no) Vennligst prov igjen senere
body {
font-family: "Bitstream Vera Sans", "Trebuchet MS", Verdana,
Tahoma, Arial, helvetica, sans-serif;
- color: #ddd;
+ color: #333;
background-color: #eee;
margin: 0px;
padding: 0px;
}
:link, :link:hover, :visited, :visited:hover {
- color: #ddd;
+ color: #000;
}
div.box {
position: relative;
border: 1px solid #aaa;
padding: 4px;
margin: 10px;
- -moz-border-radius: 10px;
}
div.error {
- background-color: #977;
+ background-color: #cce;
border: 1px solid #755;
padding: 8px;
margin: 4px;
margin-bottom: 10px;
- -moz-border-radius: 10px;
}
div.infos {
- background-color: #797;
+ background-color: #eee;
border: 1px solid #575;
padding: 8px;
margin: 4px;
margin-bottom: 10px;
- -moz-border-radius: 10px;
}
div.name {
- background-color: #779;
+ background-color: #cce;
border: 1px solid #557;
padding: 8px;
margin: 4px;
- -moz-border-radius: 10px;
}
code.error {
display: block;
unless ( $c->request->{_body} ) {
$c->request->{_body} = HTTP::Body->new( $type, $self->read_length );
+ $c->request->{_body}->{tmpdir} = $c->config->{uploadtmp}
+ if exists $c->config->{uploadtmp};
}
if ( $self->read_length > 0 ) {
# paranoia against wrong Content-Length header
my $remaining = $self->read_length - $self->read_position;
- if ($remaining > 0) {
+ if ( $remaining > 0 ) {
$self->finalize_read($c);
- Catalyst::Exception->throw("Wrong Content-Length value: ". $self->read_length);
+ Catalyst::Exception->throw(
+ "Wrong Content-Length value: " . $self->read_length );
}
}
}
print STDOUT $buffer;
}
+
=head2 $self->finalize_output
<obsolete>, see finalize_body