Version 0.98
[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
8 our $VERSION = '0.98';
9 $VERSION = eval $VERSION;
10
11 sub execute {
12     my $self = shift;
13     my ( $controller, $c, $callbacks ) = @_;
14
15     my $stash_key = (
16             $controller->{'serialize'} ?
17                 $controller->{'serialize'}->{'stash_key'} :
18                 $controller->{'stash_key'}
19         ) || 'rest';
20     my $output = $callbacks->{serialize}->( $c->stash->{$stash_key}, $controller, $c );
21     $c->response->output( $output );
22     return 1;
23 }
24
25 __PACKAGE__->meta->make_immutable;
26
27 1;