X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FAttribute.pm;h=08eab3101e1d5fcb3caa8eba0eb9ebb8a8f43509;hb=ab27a55e79fe77296eeebfbba1adbd3155f1a746;hp=1e60e214abd27bb2226aaaa68cb234dcf772f5bd;hpb=2434d21b71b6770a7d1a8a6ea5abebab3e4602be;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Attribute.pm b/lib/Mouse/Attribute.pm index 1e60e21..08eab31 100644 --- a/lib/Mouse/Attribute.pm +++ b/lib/Mouse/Attribute.pm @@ -4,6 +4,7 @@ use strict; use warnings; use Carp 'confess'; +use Scalar::Util 'blessed'; sub new { my $class = shift; @@ -35,8 +36,6 @@ sub has_default { exists $_[0]->{default} } sub has_predicate { exists $_[0]->{predicate} } sub has_clearer { exists $_[0]->{clearer} } sub has_handles { exists $_[0]->{handles} } -sub has_weak_ref { exists $_[0]->{weak_ref} } -sub has_init_arg { exists $_[0]->{init_arg} } sub has_type_constraint { exists $_[0]->{type_constraint} } sub has_trigger { exists $_[0]->{trigger} } sub has_builder { exists $_[0]->{builder} } @@ -197,7 +196,7 @@ sub find_type_constraint { my $checker = Mouse::TypeRegistry->optimized_constraints->{$type}; return $checker if $checker; - confess "Unable to parse type constraint '$type'"; + return sub { blessed($_) && blessed($_) eq $type }; } sub verify_type_constraint { @@ -239,18 +238,42 @@ installed. Some error checking is done. =head2 class -> OwnerClass -=head2 default -> Value +=head2 is_required -> Bool -=head2 predicate -> MethodName +=head2 default -> Item -=head2 clearer -> MethodName +=head2 has_default -> Bool + +=head2 is_lazy -> Bool + +=head2 predicate -> MethodName | Undef + +=head2 has_predicate -> Bool + +=head2 clearer -> MethodName | Undef + +=head2 has_clearer -> Bool =head2 handles -> { LocalName => RemoteName } +=head2 has_handles -> Bool + =head2 weak_ref -> Bool =head2 init_arg -> Str +=head2 type_constraint -> Str + +=head2 has_type_constraint -> Bool + +=head2 trigger => CODE | Undef + +=head2 has_trigger -> Bool + +=head2 builder => MethodName | Undef + +=head2 has_builder -> Bool + Informational methods. =head2 generate_accessor -> CODE