Version 1.02
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Serialize / XML / Simple.pm
index de297d2..b51b028 100644 (file)
@@ -1,16 +1,12 @@
-#
-# Catlyst::Action::Serialize::XML::Simple.pm
-# Created by: Adam Jacob, Marchex, <adam@marchex.com>
-# Created on: 10/12/2006 03:00:32 PM PDT
-#
-# $Id$
-
 package Catalyst::Action::Serialize::XML::Simple;
 
-use strict;
-use warnings;
+use Moose;
+use namespace::autoclean;
+
+extends 'Catalyst::Action';
 
-use base 'Catalyst::Action';
+our $VERSION = '1.02';
+$VERSION = eval $VERSION;
 
 sub execute {
     my $self = shift;
@@ -20,21 +16,22 @@ sub execute {
         require XML::Simple
     };
     if ($@) {
-        $c->log->debug("Could not load XML::Serializer, refusing to serialize: $@");
-        return 0;
+        $c->log->debug("Could not load XML::Serializer, refusing to serialize: $@")
+            if $c->debug;
+        return;
     }
     my $xs = XML::Simple->new(ForceArray => 0,);
 
-    my $stash_key = $controller->config->{'serialize'}->{'stash_key'} || 'rest';
-    my $output;
-    eval {
-        $output = $xs->XMLout({ data => $c->stash->{$stash_key} });
-    };
-    if ($@) {
-        return $@;
-    }
+    my $stash_key = (
+            $controller->{'serialize'} ?
+                $controller->{'serialize'}->{'stash_key'} :
+                $controller->{'stash_key'} 
+        ) || 'rest';
+    my $output = $xs->XMLout({ data => $c->stash->{$stash_key} });
     $c->response->output( $output );
     return 1;
 }
 
+__PACKAGE__->meta->make_immutable;
+
 1;