Commit | Line | Data |
f38d3061 |
1 | package CatalystX::DynamicComponent::ModelToControllerReflector::Strategy::InterfaceRoles; |
2 | use Moose; |
3 | use MooseX::Types::Moose qw/HashRef/; |
4 | use Moose::Autobox; |
5 | use List::MoreUtils qw/uniq/; |
6 | use namespace::autoclean; |
7 | |
8 | with 'CatalystX::DynamicComponent::ModelToControllerReflector::Strategy'; |
9 | |
10 | sub 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 | |