failing test for RT#43840
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Serialize / Data / Serializer.pm
CommitLineData
7ad87df9 1#
2# Catalyst::Action::Serialize::Data::Serializer
be3c588a 3# Created by: Adam Jacob, Marchex, <adam@hjksolutions.com>
7ad87df9 4#
5# $Id$
6
7package Catalyst::Action::Serialize::Data::Serializer;
8
9use strict;
10use warnings;
11
12use base 'Catalyst::Action';
13use Data::Serializer;
14
15sub execute {
16 my $self = shift;
17 my ( $controller, $c, $serializer ) = @_;
18
faf5c20b 19 my $stash_key = (
20 $controller->config->{'serialize'} ?
21 $controller->config->{'serialize'}->{'stash_key'} :
22 $controller->config->{'stash_key'}
23 ) || 'rest';
e601adda 24 my $sp = $serializer;
25 $sp =~ s/::/\//g;
26 $sp .= ".pm";
27 eval {
28 require $sp
29 };
30 if ($@) {
faf5c20b 31 $c->log->info("Could not load $serializer, refusing to serialize: $@");
e601adda 32 return 0;
33 }
eccb2137 34 my $dso = Data::Serializer->new( serializer => $serializer );
e601adda 35 my $data;
36 eval {
37 $data = $dso->raw_serialize($c->stash->{$stash_key});
38 };
39 if ($@) {
40 return $@;
41 }
42 $c->response->output( $data );
7ad87df9 43 return 1;
eccb2137 44}
7ad87df9 45
461;