Little nits
Shawn M Moore [Tue, 10 Jun 2008 02:14:14 +0000 (02:14 +0000)]
lib/Mouse/Attribute.pm
lib/Mouse/Object.pm
t/025-more-isa.t
t/101-meta-attribute.t

index 0bc6a20..dd4a7ae 100644 (file)
@@ -302,5 +302,15 @@ Creates a new code reference for the attribute's clearer.
 
 Creates a new code reference for each of the attribute's handles methods.
 
+=head2 find_type_constraint -> CODE
+
+Returns a code reference which can be used to check that a given value passes
+this attribute's type constraint;
+
+=head2 verify_type_constraint Item -> 1 | ERROR
+
+Checks that the given value passes this attribute's type constraint. Returns 1
+on success, otherwise C<confess>es.
+
 =cut
 
index dcb8590..e870e78 100644 (file)
@@ -18,9 +18,8 @@ sub new {
 
         if (!exists($args{$key})) {
             if ($attribute->has_default || $attribute->has_builder) {
-                my $default = $attribute->default;
-
                 unless ($attribute->is_lazy) {
+                    my $default = $attribute->default;
                     my $builder = $attribute->builder;
                     my $value = $attribute->has_builder
                               ? $instance->$builder
index 213fba8..e68e0ec 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 9;
+use Test::More tests => 10;
 use Test::Exception;
 
 do {
index 454b609..ecb1eb1 100644 (file)
@@ -29,4 +29,4 @@ is($attr->class, 'Class', 'attached class');
 is($attr->predicate, 'has_pawn', 'predicate');
 is($attr->clearer, 'clear_pawn', 'clearer');
 is(ref($attr->default), 'CODE', 'default is a coderef');
-
+ok($attr->verify_type_constraint(1), 'verify_type_constraint works even without isa');