f2c5b7ac84bbeae372f247db7588b3dc936f5445
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Serialize / Callback.pm
1 package Catalyst::Action::Serialize::Callback;
2
3 use Moose;
4 use namespace::autoclean;
5
6 extends 'Catalyst::Action';
7 use YAML::Syck;
8
9 our $VERSION = '0.93';
10 $VERSION = eval $VERSION;
11
12 sub execute {
13     my $self = shift;
14     my ( $controller, $c, $callbacks ) = @_;
15
16     my $stash_key = (
17             $controller->{'serialize'} ?
18                 $controller->{'serialize'}->{'stash_key'} :
19                 $controller->{'stash_key'}
20         ) || 'rest';
21     my $output = $callbacks->{serialize}->( $c->stash->{$stash_key}, $controller, $c );
22     $c->response->output( $output );
23     return 1;
24 }
25
26 __PACKAGE__->meta->make_immutable;
27
28 1;