X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FREST.pm;h=b129bf994ff4dd685644622ec0c4a073fa1b5520;hb=8aa1a2eeb6a2f0170ca8548a3862eb874b07238b;hp=0009f029be1fd69a67631b86bc8c37341106914a;hpb=82b48c6183ec3db0a8799e1494dedaf1c76618e5;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/REST.pm b/lib/Catalyst/Action/REST.pm index 0009f02..b129bf9 100644 --- a/lib/Catalyst/Action/REST.pm +++ b/lib/Catalyst/Action/REST.pm @@ -10,7 +10,7 @@ use Catalyst::Controller::REST; BEGIN { require 5.008001; } -our $VERSION = '0.88'; +our $VERSION = '0.95'; $VERSION = eval $VERSION; sub BUILDARGS { @@ -85,9 +85,18 @@ sub dispatch { my $self = shift; my $c = shift; - my $controller = $c->component( $self->class ); my $rest_method = $self->name . "_" . uc( $c->request->method ); + return $self->_dispatch_rest_method( $c, $rest_method ); +} + +sub _dispatch_rest_method { + my $self = shift; + my $c = shift; + my $rest_method = shift; + + my $controller = $c->component( $self->class ); + my ($code, $name); # Common case, for foo_GET etc @@ -102,17 +111,18 @@ sub dispatch { } # Generic handling for foo_OPTIONS - if (!$code && $c->request->method eq "OPTIONS") { - $name = $rest_method; - $code = sub { $self->_return_options($self->name, @_) }; - } - - # Otherwise, not implemented. if (!$code) { - $name = $self->name . "_not_implemented"; - $code = $controller->can($name) # User method - # Generic not implemented - || sub { $self->_return_not_implemented($self->name, @_) }; + if ( $c->request->method eq "OPTIONS") { + $name = $rest_method; + $code = sub { $self->_return_options($self->name, @_) }; + } + else { + # Otherwise, not implemented. + $name = $self->name . "_not_implemented"; + $code = $controller->can($name) # User method + # Generic not implemented + || sub { $self->_return_not_implemented($self->name, @_) }; + } } # localise stuff so we can dispatch the action 'as normal, but get @@ -204,6 +214,8 @@ Daisuke Maki Edaisuke@endeworks.jpE Hans Dieter Pearcey +Brian Phillips Ebphillips@cpan.orgE + Dave Rolsky Eautarch@urth.orgE Luke Saunders @@ -212,9 +224,15 @@ Arthur Axel "fREW" Schmidt Efrioux@gmail.comE J. Shirley Ejshirley@gmail.comE +Gavin Henry Eghenry@surevoip.co.ukE + +Gerv http://www.gerv.net/ + +Colin Newell + =head1 COPYRIGHT -Copyright the above named AUTHOR and CONTRIBUTORS +Copyright (c) 2006-2012 the above named AUTHOR and CONTRIBUTORS =head1 LICENSE