From 5e7043884b8f139c2780ecfaf1d9673938a64c0d Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 10 Oct 2011 12:29:34 -0500 Subject: if service => 0 is specified, don't do the attribute trait at all --- lib/Bread/Board/Declare/Meta/Role/Attribute.pm | 5 +++++ lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm | 8 -------- lib/Bread/Board/Declare/Meta/Role/Class.pm | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) (limited to 'lib/Bread/Board/Declare') 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 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; } -- cgit v1.2.3