X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalystX%2FDynamicComponent%2FModelToControllerReflector.pm;h=a3a58045ce107a66878ea6d6e77f2b9104e225fe;hb=3765b9eed41ccf7d3fa26c6cfb3ee168d5848659;hp=c61437a7376dfb2cba3ce4b791a529ec6e646024;hpb=e36ac2860af760b347657caeb1b2fccfd3353323;p=catagits%2FCatalystX-DynamicComponent.git diff --git a/lib/CatalystX/DynamicComponent/ModelToControllerReflector.pm b/lib/CatalystX/DynamicComponent/ModelToControllerReflector.pm index c61437a..a3a5804 100644 --- a/lib/CatalystX/DynamicComponent/ModelToControllerReflector.pm +++ b/lib/CatalystX/DynamicComponent/ModelToControllerReflector.pm @@ -2,6 +2,7 @@ package CatalystX::DynamicComponent::ModelToControllerReflector; use Moose::Role; use Moose::Util qw/does_role/; use List::MoreUtils qw/uniq/; +use Moose::Autobox; use namespace::autoclean; my $mangle_attributes_on_generated_methods = sub { @@ -47,8 +48,9 @@ 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 = $app->config->{$model_name}->{interface_roles}; - + my $interface_roles = [ uniq(($app->config->{$model_name}->{interface_roles}||=[])->flatten, + ($app->config->{'CatalystX::DynamicComponent::ModelToControllerReflector'}->{interface_roles}||=[])->flatten) ]; + for my $interface_role (@$interface_roles) { for my $required_method ($interface_role->meta->get_required_method_list) { # Note need to pass model name, as the method actually comes from