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.67';
-
-# This is wrong in several ways. First, there's no guarantee that
-# Catalyst.pm has not been subclassed. Two, there's no guarantee that
-# the user isn't already using their request subclass.
-Catalyst->request_class('Catalyst::Request::REST')
- unless Catalyst->request_class->isa('Catalyst::Request::REST');
+our $VERSION = '0.71';
=head1 NAME
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 );
if ( $controller->can($method) ) {