From 1279ccc9e428866638d87ab91d4c5844241d5b48 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 24 Mar 2011 13:57:27 -0500 Subject: also need to check attribute type constraints during dep resolution --- lib/Bread/Board/Declare/Role/Service.pm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'lib/Bread') diff --git a/lib/Bread/Board/Declare/Role/Service.pm b/lib/Bread/Board/Declare/Role/Service.pm index e0b36f9..96bdaf7 100644 --- a/lib/Bread/Board/Declare/Role/Service.pm +++ b/lib/Bread/Board/Declare/Role/Service.pm @@ -29,12 +29,17 @@ around get => sub { my $self = shift; my $container = $self->parent_container; + my $attr = $self->associated_attribute; - if ($self->associated_attribute->has_value($container)) { - return $self->associated_attribute->get_value($container); + if ($attr->has_value($container)) { + return $attr->get_value($container); } - return $self->$orig(@_); + my $val = $self->$orig(@_); + $attr->verify_against_type_constraint($val, instance => $container) + if $attr->has_type_constraint; + + return $val; }; =method parent_container -- cgit v1.2.3-54-g00ecf