bump version to 0.63
[gitmo/Moose.git] / lib / Moose / Meta / TypeCoercion.pm
index 4620c51..480b202 100644 (file)
@@ -5,12 +5,11 @@ use strict;
 use warnings;
 use metaclass;
 
-use Carp 'confess';
-
 use Moose::Meta::Attribute;
 use Moose::Util::TypeConstraints ();
 
-our $VERSION   = '0.04';
+our $VERSION   = '0.63';
+$VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
 __PACKAGE__->meta->add_attribute('type_coercion_map' => (
@@ -43,9 +42,9 @@ 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 = ref $constraint_name ? $constraint_name : Moose::Util::TypeConstraints::find_or_parse_type_constraint($constraint_name);
         (defined $type_constraint)
-            || confess "Could not find the type constraint ($constraint_name) to coerce from";
+            || Moose->throw_error("Could not find the type constraint ($constraint_name) to coerce from");
         push @coercions => [ 
             $type_constraint->_compiled_type_constraint, 
             $action 
@@ -55,7 +54,7 @@ sub compile_type_coercion {
         my $thing = shift;
         foreach my $coercion (@coercions) {
             my ($constraint, $converter) = @$coercion;
-            if (defined $constraint->($thing)) {
+            if ($constraint->($thing)) {
                 local $_ = $thing;                
                 return $converter->($thing);
             }
@@ -79,7 +78,7 @@ sub add_type_coercions {
     while (@new_coercion_map) {
         my ($constraint_name, $action) = splice(@new_coercion_map, 0, 2);        
         
-        confess "A coercion action already exists for '$constraint_name'"
+        Moose->throw_error("A coercion action already exists for '$constraint_name'")
             if exists $has_coercion{$constraint_name};
         
         push @{$coercion_map} => ($constraint_name, $action);
@@ -147,11 +146,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