Create branch register_actions.
[catagits/Catalyst-Runtime.git] / t / lib / TestApp / View / Dump.pm
CommitLineData
fbcc39ad 1package TestApp::View::Dump;
2
3use strict;
f9bcc128 4use base 'Catalyst::View';
fbcc39ad 5
6use Data::Dumper ();
ae29b412 7use Scalar::Util qw(blessed weaken);
fbcc39ad 8
9sub dump {
10 my ( $self, $reference ) = @_;
11
12 return unless $reference;
13
14 my $dumper = Data::Dumper->new( [$reference] );
15 $dumper->Indent(1);
16 $dumper->Purity(1);
17 $dumper->Useqq(0);
18 $dumper->Deepcopy(1);
19 $dumper->Quotekeys(0);
20 $dumper->Terse(1);
21
22 return $dumper->Dump;
23}
24
25sub process {
26 my ( $self, $c, $reference ) = @_;
27
28 # Force processing of on-demand data
29 $c->prepare_body;
30
fbcc39ad 31 # Remove body from reference if needed
ae29b412 32 $reference->{__body_type} = blessed $reference->body
33 if (blessed $reference->{_body});
fbcc39ad 34 my $body = delete $reference->{_body};
35
ae29b412 36 # Remove context from reference if needed
37 my $context = delete $reference->{_context};
38
fbcc39ad 39 if ( my $output =
ae29b412 40 $self->dump( $reference ) )
fbcc39ad 41 {
42
43 $c->res->headers->content_type('text/plain');
44 $c->res->output($output);
45
46 # Repair context
47 $reference->{_context} = $context;
fb9b4097 48 weaken( $reference->{_context} );
fbcc39ad 49
50 # Repair body
ae29b412 51 delete $reference->{__body_type};
fbcc39ad 52 $reference->{_body} = $body;
53
54 return 1;
55 }
56
57 return 0;
58}
59
601;