Commit | Line | Data |
---|---|---|
e601adda | 1 | # |
2 | # Catlyst::Action::Serialize::JSON.pm | |
be3c588a | 3 | # Created by: Adam Jacob, Marchex, <adam@hjksolutions.com> |
e601adda | 4 | # Created on: 10/12/2006 03:00:32 PM PDT |
5 | # | |
6 | # $Id$ | |
7 | ||
8 | package Catalyst::Action::Serialize::JSON; | |
9 | ||
10 | use strict; | |
11 | use warnings; | |
12 | ||
13 | use base 'Catalyst::Action'; | |
ebba5325 | 14 | use JSON qw(encode_json); |
e601adda | 15 | |
16 | sub execute { | |
17 | my $self = shift; | |
18 | my ( $controller, $c ) = @_; | |
19 | ||
faf5c20b | 20 | my $stash_key = ( |
07682cbc | 21 | $controller->{'serialize'} ? |
22 | $controller->{'serialize'}->{'stash_key'} : | |
23 | $controller->{'stash_key'} | |
faf5c20b | 24 | ) || 'rest'; |
e601adda | 25 | my $output; |
26 | eval { | |
485b5160 | 27 | $output = $self->serialize( $c->stash->{$stash_key} ); |
e601adda | 28 | }; |
29 | if ($@) { | |
30 | return $@; | |
31 | } | |
32 | $c->response->output( $output ); | |
33 | return 1; | |
34 | } | |
35 | ||
485b5160 | 36 | sub serialize { |
546f2871 | 37 | my $self = shift; |
e9073a60 | 38 | encode_json( shift ); |
546f2871 | 39 | } |
40 | ||
e601adda | 41 | 1; |