summaryrefslogtreecommitdiffstats
path: root/lib/Bread/Board/Declare/Meta/Role/Attribute.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-10-10 14:10:14 -0500
committerJesse Luehrs <doy@tozt.net>2011-10-10 14:10:14 -0500
commite1c675f0a434b6323cff812c8293eee5dc0c6c28 (patch)
treeef5fecdf59d6e925358539b3a07812c3c8c02b13 /lib/Bread/Board/Declare/Meta/Role/Attribute.pm
parent3ccbed1506d350a63abe81657ace5e11c7da5ee4 (diff)
downloadbread-board-declare-e1c675f0a434b6323cff812c8293eee5dc0c6c28.tar.gz
bread-board-declare-e1c675f0a434b6323cff812c8293eee5dc0c6c28.zip
sketch out subcontainers (still needs work)
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]