X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FREST.pm;fp=lib%2FCatalyst%2FAction%2FREST.pm;h=631df04d06913f14dc86191813f0dff663a739ae;hb=bcf4a9367933ca918e6a0ac49945151e6e2e74e4;hp=6a5ac82eb14a639ab2a33c069c7d510cbb1787da;hpb=f04ed654a172628f642bdefe8483c1e6becf9ad1;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/REST.pm b/lib/Catalyst/Action/REST.pm index 6a5ac82..631df04 100644 --- a/lib/Catalyst/Action/REST.pm +++ b/lib/Catalyst/Action/REST.pm @@ -3,29 +3,21 @@ # 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.74'; -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 @@ -88,6 +80,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 );