return if $req_class->isa($class);
my $req_class_meta = Moose->init_meta( for_class => $req_class );
return if $req_class_meta->does_role('Catalyst::TraitFor::Request::REST');
- if ($req_class eq 'Catalyst::Request') {
- $app->request_class($class);
- }
- else {
- my $meta = Moose::Meta::Class->create_anon_class(
- superclasses => [$req_class],
- roles => ['Catalyst::TraitFor::Request::REST'],
- cache => 1
- );
- $meta->add_method(meta => sub { $meta });
- $app->request_class($meta->name);
- }
+ my $meta = Moose::Meta::Class->create_anon_class(
+ superclasses => [$req_class],
+ roles => ['Catalyst::TraitFor::Request::REST'],
+ cache => 1
+ );
+ $meta->add_method(meta => sub { $meta });
+ $app->request_class($meta->name);
}
__PACKAGE__->meta->make_immutable;
$ENV{CATALYST_DEBUG} = 0;
my $test = 'Test::Catalyst::Action::REST';
use_ok $test;
- is($test->request_class, 'Catalyst::Request::REST',
- 'Request::REST took over for Request');
+ ok($test->request_class->meta->does_role('Catalyst::TraitFor::Request::REST'),
+ 'request class does REST role');
my $meta = Moose::Meta::Class->create_anon_class(
superclasses => ['Catalyst::Request'],
ok !$@, 'Can setup again';
isnt $test->request_class, $meta->name, 'Different request class';
ok $test->request_class->can('__random_method'), 'Is right class';
- ok $test->request_class->can('data'), 'Also smells like REST subclass';
+ ok($test->request_class->meta->does_role('Catalyst::TraitFor::Request::REST'),
+ 'request class still does REST role');
{
package My::Request;