summaryrefslogtreecommitdiffstats
path: root/lib/Bread/Board/Declare/Meta/Role/Attribute.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bread/Board/Declare/Meta/Role/Attribute.pm')
-rw-r--r--lib/Bread/Board/Declare/Meta/Role/Attribute.pm11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Bread/Board/Declare/Meta/Role/Attribute.pm b/lib/Bread/Board/Declare/Meta/Role/Attribute.pm
index d356e3a..7a08376 100644
--- a/lib/Bread/Board/Declare/Meta/Role/Attribute.pm
+++ b/lib/Bread/Board/Declare/Meta/Role/Attribute.pm
@@ -5,6 +5,9 @@ use Moose::Role;
use List::MoreUtils 'any';
use Moose::Util 'does_role', 'find_meta';
+use Bread::Board::Declare::Meta::Role::Attribute::Container;
+use Bread::Board::Declare::Meta::Role::Attribute::Service;
+
=attr service
Whether or not to create a service for this attribute. Defaults to true.
@@ -28,14 +31,14 @@ around interpolate_class => sub {
return $class->$orig(@_)
if $options->{metaclass};
- if (exists $options->{service} && !$options->{service}) {
- return $class->$orig(@_);
- }
+ return $class->$orig(@_)
+ if exists $options->{service} && !$options->{service};
my ($new_class, @traits) = $class->$orig(@_);
return wantarray ? ($new_class, @traits) : $new_class
- if does_role($new_class, 'Bread::Board::Declare::Meta::Role::Attribute::Service');
+ if does_role($new_class, 'Bread::Board::Declare::Meta::Role::Attribute::Service')
+ || does_role($new_class, 'Bread::Board::Declare::Meta::Role::Attribute::Container');
my $parent = @traits
? (find_meta($new_class)->superclasses)[0]