summaryrefslogtreecommitdiffstats
path: root/lib/Bread/Board/Declare
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-10-10 12:29:34 -0500
committerJesse Luehrs <doy@tozt.net>2011-10-10 12:34:10 -0500
commit5e7043884b8f139c2780ecfaf1d9673938a64c0d (patch)
tree9f61411eb13ea847c736770c2b56cabd5e620f2f /lib/Bread/Board/Declare
parent112e56b0bd5e6a6aff3c1d513ad7d0c528e899f7 (diff)
downloadbread-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/Bread/Board/Declare')
-rw-r--r--lib/Bread/Board/Declare/Meta/Role/Attribute.pm5
-rw-r--r--lib/Bread/Board/Declare/Meta/Role/Attribute/Service.pm8
-rw-r--r--lib/Bread/Board/Declare/Meta/Role/Class.pm2
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;
}