diff options
Diffstat (limited to 'lib/MooseX/Bread/Board/Meta/Role/Class.pm')
-rw-r--r-- | lib/MooseX/Bread/Board/Meta/Role/Class.pm | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/lib/MooseX/Bread/Board/Meta/Role/Class.pm b/lib/MooseX/Bread/Board/Meta/Role/Class.pm index e48c9f6..66c18ac 100644 --- a/lib/MooseX/Bread/Board/Meta/Role/Class.pm +++ b/lib/MooseX/Bread/Board/Meta/Role/Class.pm @@ -4,31 +4,12 @@ use Moose::Role; use Bread::Board::Service; use List::MoreUtils qw(any); -has services => ( - traits => ['Array'], - isa => 'ArrayRef[Bread::Board::Service]', - default => sub { [] }, - handles => { - add_service => 'push', - services => 'elements', - has_services => 'count', - }, -); - -sub has_any_services { - my $self = shift; - return any { $_->has_services } - grep { Moose::Util::does_role($_, __PACKAGE__) } - map { $_->meta } - $self->linearized_isa; -} - sub get_all_services { my $self = shift; - return map { $_->services } - grep { Moose::Util::does_role($_, __PACKAGE__) } - map { $_->meta } - $self->linearized_isa; + return map { $_->associated_service } + grep { $_->has_associated_service } + grep { Moose::Util::does_role($_, 'MooseX::Bread::Board::Meta::Role::Attribute') } + $self->get_all_attributes; } before superclasses => sub { |