Do not munge config
[catagits/CatalystX-DynamicComponent.git] / lib / CatalystX / DynamicComponent / ModelToControllerReflector / Strategy / InterfaceRoles.pm
CommitLineData
f38d3061 1package CatalystX::DynamicComponent::ModelToControllerReflector::Strategy::InterfaceRoles;
2use Moose;
3use MooseX::Types::Moose qw/HashRef/;
4use Moose::Autobox;
5use List::MoreUtils qw/uniq/;
6use namespace::autoclean;
7
8with 'CatalystX::DynamicComponent::ModelToControllerReflector::Strategy';
9
10sub get_reflected_method_list {;
11 my ($self, $app, $model_meta) = @_;
12 my $model_name = $model_meta->name;
84d8e4e1 13 my $model_config = exists $app->config->{$model_name} ? $app->config->{$model_name} : {};
14 my $my_config = exists $app->config->{'CatalystX::DynamicComponent::ModelToControllerReflector'}
15 ? $app->config->{'CatalystX::DynamicComponent::ModelToControllerReflector'} : {};
16 my $interface_roles = [ uniq( map { (defined $_ && exists $_->{interface_roles}) ? $_->{interface_roles}->flatten : () } $model_config, $my_config ) ];
f38d3061 17
18 map { $_->meta->get_required_method_list } @$interface_roles;
19}
20
21__PACKAGE__->meta->make_immutable;
22