Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Catalyst / Action / Serialize / View.pm
CommitLineData
3fea05b9 1package Catalyst::Action::Serialize::View;
2use Moose;
3use namespace::autoclean;
4
5extends 'Catalyst::Action';
6
7our $VERSION = '0.85';
8$VERSION = eval $VERSION;
9
10sub execute {
11 my $self = shift;
12 my ( $controller, $c, $view ) = @_;
13
14 # Views don't care / are not going to render an entity for 3XX
15 # responses.
16 return 1 if $c->response->status =~ /^(?:204|3\d\d)$/;
17
18 my $stash_key = (
19 $controller->{'serialize'} ?
20 $controller->{'serialize'}->{'stash_key'} :
21 $controller->{'stash_key'}
22 ) || 'rest';
23
24 if ( !$c->view($view) ) {
25 $c->log->error("Could not load $view, refusing to serialize");
26 return;
27 }
28
29 if ($c->view($view)->process($c, $stash_key)) {
30 return 1;
31 } else {
32 # This is stupid. Please improve it.
33 my $error = join("\n", @{ $c->error }) || "Error in $view";
34 $error .= "\n";
35 $c->clear_errors;
36 die $error;
37 }
38}
39
401;