Apply roles to component after adding the methods, so methods can advise roles
t0m [Mon, 25 May 2009 02:46:44 +0000 (03:46 +0100)]
lib/CatalystX/DynamicComponent.pm

index 2f45be8..3207802 100644 (file)
@@ -96,14 +96,14 @@ role {
         push(@superclasses, 'Catalyst::' . $type) unless @superclasses;
         $meta->superclasses(@superclasses);
         
-        if (my @roles = @{ $get_resolved_config->('roles', $p, $config) }) {
-            Moose::Util::apply_all_roles( $name, @roles);
-        }
-
         my $methods = $get_resolved_config->('methods', $p, $config);
         foreach my $name (keys %$methods) {
             $meta->add_method($name => $methods->{$name});
         }
+
+        if (my @roles = @{ $get_resolved_config->('roles', $p, $config) }) {
+            Moose::Util::apply_all_roles( $name, @roles);
+        }
  
         if ($p->has_pre_immutable_hook) {
             if (!ref($pre_immutable_hook)) {
@@ -300,6 +300,10 @@ Unlame needing to pass fully qualified component name in, that's retarded...
 
 Remember to fix the docs and clients too ;)
 
+=item *
+
+Tests for roles giving advice to methods which have just been added..
+
 =back
 
 =head1 LINKS