MooseX::Meta::TypeConstraint::ForceCoercion - Force coercion when validating
type constraints
use MooseX::Types:::Moose qw/Str Any/;
use Moose::Util::TypeConstraints;
use MooseX::Meta::TypeConstraint::ForceCoercion;
# get any type constraint
my $tc = Str;
# declare one or more coercions for it
coerce $tc,
from Any,
via { ... };
# wrap the $tc to force coercion
my $coercing_tc = MooseX::Meta::TypeConstraint::ForceCoercion->new(
type_constraint => $tc,
);
# check a value against new type constraint. this will run the type
# coercions for the wrapped type, even if the value already passes
# validation before coercion. it will fail if the value couldn't be
# coerced
$coercing_tc->check('Affe');
This class allows to wrap any
"Moose::Meta::TypeConstraint" in a way that
will force coercion of the value when checking or validating a value against
it.
The type constraint to wrap. All methods except for
"validate" and
"check" are delegated to the value of this
attribute.
Same as "Moose::Meta::TypeConstraint::check",
except it will always try to coerce $value before
checking it against the actual type constraint. If coercing fails the check
will fail, too.
Same as
"Moose::Meta::TypeConstraint::validate",
except it will always try to coerce $value before
validating it against the actual type constraint. If coercing fails the
validation will fail, too.
If coercion was successful and a
$coerced_ref references was passed, the coerced
value will be stored in that.
Florian Ragwitz <rafl@debian.org>
This software is copyright (c) 2009 by Florian Ragwitz.
This is free software; you can redistribute it and/or modify it
under the same terms as perl itself.