X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FREST.pm;h=276d655cd463584f72abf8334587ce28547fb6e0;hb=roles-saner;hp=c9d336e4feabebccf6e38e1561e516a461d978ab;hpb=c42820ae3a3798274457f39e4d1aaf1d53dd676a;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/REST.pm b/lib/Catalyst/Action/REST.pm index c9d336e..276d655 100644 --- a/lib/Catalyst/Action/REST.pm +++ b/lib/Catalyst/Action/REST.pm @@ -3,30 +3,22 @@ # Created by: Adam Jacob, Marchex, # Created on: 10/12/2006 03:00:32 PM PDT # -# $Id$ package Catalyst::Action::REST; - -use strict; -use warnings; - -use base 'Catalyst::Action'; +use Moose; use Class::Inspector; -use Catalyst::Request::REST; +use Moose::Util qw(does_role); +use Catalyst::RequestRole::REST; use Catalyst::Controller::REST; +use namespace::clean -except => 'meta'; + +extends 'Catalyst::Action'; BEGIN { require 5.008001; } our $VERSION = '0.76'; $VERSION = eval $VERSION; -sub new { - my $class = shift; - my $config = shift; - Catalyst::Request::REST->_insert_self_into( $config->{class} ); - return $class->next::method($config, @_); -} - =head1 NAME Catalyst::Action::REST - Automated REST Method Dispatching @@ -89,6 +81,9 @@ sub dispatch { my $self = shift; my $c = shift; + Catalyst::RequestRole::REST->meta->apply($c->request) + unless does_role($c->request, 'Catalyst::RequestRole::REST'); + my $controller = $c->component( $self->class ); my $rest_method = $self->name . "_" . uc( $c->request->method );