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