X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FSerialize%2FJSON.pm;h=d4b12dfa3db4737d74e327cf03b2f97856b49db9;hb=930013e6f19b25a090c3f8839495ad8d9b15ff6d;hp=8a74a3e5c5df2277cc52c45b9c44485a454e8d46;hpb=e601addaf89882fccbc824c1a53328f0d049b32b;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/Serialize/JSON.pm b/lib/Catalyst/Action/Serialize/JSON.pm index 8a74a3e..d4b12df 100644 --- a/lib/Catalyst/Action/Serialize/JSON.pm +++ b/lib/Catalyst/Action/Serialize/JSON.pm @@ -1,26 +1,23 @@ -# -# Catlyst::Action::Serialize::JSON.pm -# Created by: Adam Jacob, Marchex, -# Created on: 10/12/2006 03:00:32 PM PDT -# -# $Id$ - package Catalyst::Action::Serialize::JSON; -use strict; -use warnings; +use Moose; +use namespace::autoclean; -use base 'Catalyst::Action'; -use JSON::Syck; +extends 'Catalyst::Action'; +use JSON qw(encode_json); sub execute { my $self = shift; my ( $controller, $c ) = @_; - my $stash_key = $controller->config->{'serialize'}->{'stash_key'} || 'rest'; + my $stash_key = ( + $controller->{'serialize'} ? + $controller->{'serialize'}->{'stash_key'} : + $controller->{'stash_key'} + ) || 'rest'; my $output; eval { - $output = JSON::Syck::Dump($c->stash->{$stash_key}); + $output = $self->serialize( $c->stash->{$stash_key} ); }; if ($@) { return $@; @@ -29,4 +26,9 @@ sub execute { return 1; } +sub serialize { + my $self = shift; + encode_json( shift ); +} + 1;