misc junk
[gitmo/Moose.git] / lib / Moose / Meta / TypeCoercion.pm
index 1e9f470..5193cdb 100644 (file)
@@ -8,9 +8,9 @@ use metaclass;
 use Carp 'confess';
 
 use Moose::Meta::Attribute;
-use Moose::Util::TypeConstraints;
+use Moose::Util::TypeConstraints ();
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 __PACKAGE__->meta->add_attribute('type_coercion_map' => (
     reader  => 'type_coercion_map',
@@ -41,10 +41,13 @@ sub compile_type_coercion {
     my @coercions;
     while (@coercion_map) {
         my ($constraint_name, $action) = splice(@coercion_map, 0, 2);
-        my $constraint = Moose::Util::TypeConstraints::find_type_constraint($constraint_name)->_compiled_type_constraint;       
-        (defined $constraint)
-            || confess "Could not find the type constraint ($constraint_name)";
-        push @coercions => [  $constraint, $action ];
+        my $type_constraint = Moose::Util::TypeConstraints::find_type_constraint($constraint_name);
+        (defined $type_constraint)
+            || confess "Could not find the type constraint ($constraint_name) to coerce from";
+        push @coercions => [ 
+            $type_constraint->_compiled_type_constraint, 
+            $action 
+        ];
     }
     $self->_compiled_type_coercion(sub { 
         my $thing = shift;
@@ -70,12 +73,19 @@ __END__
 
 =head1 NAME
 
-Moose::Meta::TypeCoercion - The Moose Type Coercion metaobject
-
-=head1 SYNOPSIS
+Moose::Meta::TypeCoercion - The Moose Type Coercion metaclass
 
 =head1 DESCRIPTION
 
+For the most part, the only time you will ever encounter an 
+instance of this class is if you are doing some serious deep 
+introspection. This API should not be considered final, but 
+it is B<highly unlikely> that this will matter to a regular 
+Moose user.
+
+If you wish to use features at this depth, please come to the 
+#moose IRC channel on irc.perl.org and we can talk :)
+
 =head1 METHODS
 
 =over 4
@@ -84,10 +94,10 @@ Moose::Meta::TypeCoercion - The Moose Type Coercion metaobject
 
 =item B<new>
 
-=item B<coerce>
-
 =item B<compile_type_coercion>
 
+=item B<coerce>
+
 =item B<type_coercion_map>
 
 =item B<type_constraint>