From e1c675f0a434b6323cff812c8293eee5dc0c6c28 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 10 Oct 2011 14:10:14 -0500 Subject: sketch out subcontainers (still needs work) --- lib/Bread/Board/Declare/Meta/Role/Attribute.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'lib/Bread/Board/Declare/Meta/Role/Attribute.pm') 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] -- cgit v1.2.3-54-g00ecf