X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest%2FREST.pm;h=0fcd31cd09a250eb21724b77ce823ca63386097d;hb=f789417d081b4d519ded07eec046c0b01661e25d;hp=e7128ca8fac33ad92341e62fad0997b74b24d568;hpb=e527bba30dcea5108b0fb77416fcb4e8ee1e5a38;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Request/REST.pm b/lib/Catalyst/Request/REST.pm index e7128ca..0fcd31c 100644 --- a/lib/Catalyst/Request/REST.pm +++ b/lib/Catalyst/Request/REST.pm @@ -1,4 +1,5 @@ package Catalyst::Request::REST; + use Moose; use Catalyst::Utils; @@ -7,9 +8,6 @@ use namespace::autoclean; extends 'Catalyst::Request'; with 'Catalyst::TraitFor::Request::REST'; -our $VERSION = '0.87'; -$VERSION = eval $VERSION; - # Please don't take this as a recommended way to do things. # The code below is grotty, badly factored and mostly here for back # compat.. @@ -23,14 +21,15 @@ sub _insert_self_into { my $req_class = $app->request_class; 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'); + my $role = $class->_related_role; + return if $req_class_meta->does_role($role); 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'], + roles => [$role], cache => 1 ); $meta->_add_meta_method('meta'); @@ -38,7 +37,12 @@ sub _insert_self_into { } } +sub _related_role { 'Catalyst::TraitFor::Request::REST' } + __PACKAGE__->meta->make_immutable; + +1; + __END__ =head1 NAME