die in Attribute::_process_options if the attr is required but there is no way to...
[gitmo/Moose.git] / lib / Moose / Meta / TypeCoercion.pm
index 0954307..aaae013 100644 (file)
@@ -10,7 +10,7 @@ use Carp 'confess';
 use Moose::Meta::Attribute;
 use Moose::Util::TypeConstraints ();
 
-our $VERSION   = '0.04';
+our $VERSION   = '0.06';
 our $AUTHORITY = 'cpan:STEVAN';
 
 __PACKAGE__->meta->add_attribute('type_coercion_map' => (
@@ -43,7 +43,7 @@ sub compile_type_coercion {
     my @coercions;
     while (@coercion_map) {
         my ($constraint_name, $action) = splice(@coercion_map, 0, 2);
-        my $type_constraint = Moose::Util::TypeConstraints::find_type_constraint($constraint_name);
+        my $type_constraint = Moose::Util::TypeConstraints::find_or_create_type_constraint($constraint_name);
         (defined $type_constraint)
             || confess "Could not find the type constraint ($constraint_name) to coerce from";
         push @coercions => [ 
@@ -55,8 +55,8 @@ sub compile_type_coercion {
         my $thing = shift;
         foreach my $coercion (@coercions) {
             my ($constraint, $converter) = @$coercion;
-            if (defined $constraint->($thing)) {
-                           local $_ = $thing;                
+            if ($constraint->($thing)) {
+                local $_ = $thing;                
                 return $converter->($thing);
             }
         }
@@ -147,11 +147,11 @@ Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006, 2007 by Infinity Interactive, Inc.
+Copyright 2006-2008 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself. 
 
-=cut
\ No newline at end of file
+=cut