Adjust to not munge config
t0m [Sun, 7 Jun 2009 02:05:01 +0000 (03:05 +0100)]
lib/CatalystX/DynamicComponent/ModelToControllerReflector.pm
t/06_dynamicmodel_interface.t

index a3a5804..c343816 100644 (file)
@@ -48,8 +48,7 @@ sub _reflect_model_to_controller {
     my %controller_methods;
     # FIXME - Abstract this strategy crap out.
     my $model_methods = $model->meta->get_method_map;
-    my $interface_roles = [ uniq(($app->config->{$model_name}->{interface_roles}||=[])->flatten,
-        ($app->config->{'CatalystX::DynamicComponent::ModelToControllerReflector'}->{interface_roles}||=[])->flatten) ];
+    my $interface_roles = [ uniq( map { exists $_->{interface_roles} ? $_->{interface_roles}->flatten : () } $app->config->{$model_name}, $app->config->{'CatalystX::DynamicComponent::ModelToControllerReflector'} ) ];
     
     for my $interface_role (@$interface_roles) {
             for my $required_method ($interface_role->meta->get_required_method_list) {
index cf71fc9..d67c0d8 100644 (file)
@@ -8,7 +8,10 @@ use Test::More tests => 2;
 
 BEGIN { use_ok('ModelsFromConfigInterfaceApp'); }
 
-is_deeply(ModelsFromConfigInterfaceApp->config, {
+my $config = ModelsFromConfigInterfaceApp->config;
+delete $config->{'CatalystX::DynamicComponent::ModelToControllerReflector'};
+
+is_deeply($config, {
     name => 'ModelsFromConfigInterfaceApp',
     'Model::One' => {
         class => 'SomeModelClass',