X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FSerialize%2FJSONP.pm;h=23f6c0a35272858dd39adf409f450a9e2a3ce53a;hb=351f252f57354a5a0c50e3c931b0addd4f1988ff;hp=4354ce2a062705b0c240aa7a77f5bdfcc07ce583;hpb=9ffbd15626ce11a2c727169d5b0d382f4386d486;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/Serialize/JSONP.pm b/lib/Catalyst/Action/Serialize/JSONP.pm index 4354ce2..23f6c0a 100644 --- a/lib/Catalyst/Action/Serialize/JSONP.pm +++ b/lib/Catalyst/Action/Serialize/JSONP.pm @@ -1,27 +1,33 @@ package Catalyst::Action::Serialize::JSONP; use Moose; use namespace::autoclean; -BEGIN {extends 'Catalyst::Action::Serialize::JSON'}; -after 'execute' => sub { +extends 'Catalyst::Action::Serialize::JSON'; + +our $VERSION = '0.98'; +$VERSION = eval $VERSION; + +after 'execute' => sub { my $self = shift; my ($controller, $c) = @_; my $callback_key = ( $controller->{'serialize'} ? $controller->{'serialize'}->{'callback_key'} : - $controller->{'callback_key'} + $controller->{'callback_key'} ) || 'callback'; my $callback_value = $c->req->param($callback_key); if ($callback_value) { - if ($callback_value =~ /^\w+/) { + if ($callback_value =~ /^[.\w]+$/) { $c->res->content_type('text/javascript'); $c->res->output($callback_value.'('.$c->res->output().');'); - } else { + } else { warn 'Callback: '.$callback_value.' will not generate valid Javascript. Falling back to JSON output'; } } }; +__PACKAGE__->meta->make_immutable; + 1;