Commit | Line | Data |
fbcc39ad |
1 | package TestApp::View::Dump; |
2 | |
3 | use strict; |
4 | use base 'Catalyst::Base'; |
5 | |
6 | use Data::Dumper (); |
7 | |
8 | sub 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 | |
24 | sub 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 | |
55 | 1; |