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',
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;
=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
=item B<new>
-=item B<coerce>
-
=item B<compile_type_coercion>
+=item B<coerce>
+
=item B<type_coercion_map>
=item B<type_constraint>