Merge branch 'master' into roles-saner
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / REST.pm
index d887f22..a1dbdaf 100644 (file)
@@ -12,21 +12,16 @@ use warnings;
 
 use base 'Catalyst::Action';
 use Class::Inspector;
+use Moose::Util qw(does_role);
 use Catalyst;
-use Catalyst::Request::REST;
+use Catalyst::RequestRole::REST;
 use Catalyst::Controller::REST;
+use namespace::clean -except => 'meta';
 
 BEGIN { require 5.008001; }
 
 our $VERSION = '0.73';
 
-sub new {
-  my $class  = shift;
-  my $config = shift;
-  Catalyst::Request::REST->_insert_self_into( $config->{class} );
-  return $class->SUPER::new($config, @_);
-}
-
 =head1 NAME
 
 Catalyst::Action::REST - Automated REST Method Dispatching
@@ -89,6 +84,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 $method     = $self->name . "_" . uc( $c->request->method );