diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-10-10 12:29:34 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-10-10 12:34:10 -0500 |
commit | 5e7043884b8f139c2780ecfaf1d9673938a64c0d (patch) | |
tree | 9f61411eb13ea847c736770c2b56cabd5e620f2f /lib | |
parent | 112e56b0bd5e6a6aff3c1d513ad7d0c528e899f7 (diff) | |
download | bread-board-declare-5e7043884b8f139c2780ecfaf1d9673938a64c0d.tar.gz bread-board-declare-5e7043884b8f139c2780ecfaf1d9673938a64c0d.zip |
if service => 0 is specified, don't do the attribute trait at all
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Bread/Board/Declare/Meta/Role/Attribute.pm | 5 | ||||
-rw-r--r-- | lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm | 8 | ||||
-rw-r--r-- | lib/Bread/Board/Declare/Meta/Role/Class.pm | 2 |
3 files changed, 6 insertions, 9 deletions
diff --git a/lib/Bread/Board/Declare/Meta/Role/Attribute.pm b/lib/Bread/Board/Declare/Meta/Role/Attribute.pm index 2caeed4..c7d1477 100644 --- a/lib/Bread/Board/Declare/Meta/Role/Attribute.pm +++ b/lib/Bread/Board/Declare/Meta/Role/Attribute.pm @@ -15,6 +15,11 @@ around interpolate_class => sub { return $class->$orig(@_) if $options->{metaclass}; + if (exists $options->{service} && !$options->{service}) { + delete $options->{service}; + return $class->$orig(@_); + } + my ($new_class, @traits) = $class->$orig(@_); return wantarray ? ($new_class, @traits) : $new_class diff --git a/lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm b/lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm index 156443a..1836c8f 100644 --- a/lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm +++ b/lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm @@ -23,12 +23,6 @@ Whether or not to create a service for this attribute. Defaults to true. =cut -has service => ( - is => 'ro', - isa => 'Bool', - default => 1, -); - =attr block The block to use when creating a L<Bread::Board::BlockInjection> service. @@ -138,8 +132,6 @@ has associated_service => ( after attach_to_class => sub { my $self = shift; - return unless $self->service; - my %params = ( associated_attribute => $self, name => $self->name, diff --git a/lib/Bread/Board/Declare/Meta/Role/Class.pm b/lib/Bread/Board/Declare/Meta/Role/Class.pm index 3ece152..9aecb70 100644 --- a/lib/Bread/Board/Declare/Meta/Role/Class.pm +++ b/lib/Bread/Board/Declare/Meta/Role/Class.pm @@ -22,7 +22,7 @@ sub get_all_services { my $self = shift; return map { $_->associated_service } grep { $_->has_associated_service } - grep { Moose::Util::does_role($_, 'Bread::Board::Declare::Meta::Role::Attribute') } + grep { Moose::Util::does_role($_, 'Bread::Board::Declare::Meta::Role::Attribute::Service') } $self->get_all_attributes; } |