From: Dave Rolsky Date: Wed, 25 Mar 2009 19:08:47 +0000 (-0500) Subject: Docs for Moose::Meta::TypeCoercion X-Git-Tag: 0.72_01~25 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3f96196274295ac68ef6a04ce6745a9e2f51b486;p=gitmo%2FMoose.git Docs for Moose::Meta::TypeCoercion --- diff --git a/lib/Moose/Meta/TypeCoercion.pm b/lib/Moose/Meta/TypeCoercion.pm index 6e491e3..f92485d 100644 --- a/lib/Moose/Meta/TypeCoercion.pm +++ b/lib/Moose/Meta/TypeCoercion.pm @@ -109,34 +109,66 @@ 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 that this will matter to a regular -Moose user. +A type coercion object is basically a mapping of one or more type +constraints and the associated coercions subroutines. -If you wish to use features at this depth, please come to the -#moose IRC channel on irc.perl.org and we can talk :) +It's unlikely that you will need to instantiate an object of this +class directly, as it's part of the deep internals of Moose. =head1 METHODS =over 4 -=item B +=item B<< Moose::Meta::TypeCoercion->new(%options) >> -=item B +Creates a new type coercion object, based on the options provided. -=item B +=over 8 -=item B +=item * type_constraint -=item B +This is the L object for the type that is +being coerced I. -=item B +=back + +=item B<< $coercion->type_coercion_map >> + +This returns the map of type constraints to coercions as an array +reference. The values of the array alternate between type names and +subroutine references which implement the coercion. + +The value is an array reference because coercions are tried in the +order they are added. + +=item B<< $coercion->type_constraint >> + +This returns the L that was passed to the +constructor. + +=item B<< $coercion->has_coercion_for_type($type_name) >> + +Returns true if the coercion can coerce the named type. + +=item B<< $coercion->add_type_coercions( $type_name => $sub, ... ) >> + +This method takes a list of type names and subroutine references. If +the coercion already has a mapping for a given type, it throws an +exception. + +Coercions are actually + +=item B<< $coercion->coerce($value) >> + +This method takes a value and applies the first valid coercion it +finds. + +This means that if the value could belong to more than type in the +coercion object, the first coercion added is used. -=item B +=item B<< Moose::Meta::TypeCoercion->meta >> -=item B +This will return a L instance for this class. =back