mis-rebase
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Controller.pm
index e821a46..16b7fb4 100644 (file)
@@ -1,7 +1,7 @@
 package Catalyst::Controller;
 
 use Moose;
-use Moose::Util qw/find_meta does_role/;
+use Moose::Util qw/find_meta/;
 
 use namespace::clean -except => 'meta';
 
@@ -174,15 +174,26 @@ around path_prefix => sub {
     return $namespace;
 };
 
+sub get_action_methods {
+    my $self = shift;
+    my $meta = find_meta($self);
+    confess("Metaclass for " . ref($meta) ." for " . $meta->name 
+        . " cannot support register_actions.")
+        unless $meta->can('get_all_methods_with_attributes');
+    my @methods = $meta->get_all_methods_with_attributes;
+    return @methods;
+}
 
 sub register_actions {
     my ( $self, $c ) = @_;
+    $self->register_action_methods( $c, $self->get_action_methods );
+}
+
+sub register_action_methods {
+    my ( $self, $c, @methods ) = @_;
     my $class = ref $self || $self;
     #this is still not correct for some reason.
     my $namespace = $self->action_namespace($c);
-    my $meta = find_meta($self);
-    my @methods = grep { does_role($_, 'MooseX::MethodAttributes::Role::Meta::Method') }
-            $meta->get_all_methods;
 
     foreach my $method (@methods) {
         my $name = $method->name;