X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FTypeCoercion.pm;h=fc44cabf9ce79cd8fba6a5579ff322c4903cbea0;hb=e1d6f0a3c8cee0350b97695a2307af7004a1eb97;hp=394b9dfd86cd40940cc8fa416e123f407847417d;hpb=25374f018116dc632e1625bf401c8893c5df21ff;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/TypeCoercion.pm b/lib/Moose/Meta/TypeCoercion.pm index 394b9df..fc44cab 100644 --- a/lib/Moose/Meta/TypeCoercion.pm +++ b/lib/Moose/Meta/TypeCoercion.pm @@ -5,12 +5,11 @@ use strict; use warnings; use metaclass; -use Carp 'confess'; - use Moose::Meta::Attribute; use Moose::Util::TypeConstraints (); -our $VERSION = '0.05'; +our $VERSION = '0.61'; +$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_or_create_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 Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006, 2007 by Infinity Interactive, Inc. +Copyright 2006-2008 by Infinity Interactive, Inc. L 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