NAME
MooseX::Meta::TypeConstraint::ForceCoercion - Force coercion when validating type constraints
VERSION
version 0.01
SYNOPSIS
# 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'
);
DESCRIPTION
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.
ATTRIBUTES
type_constraint
The type constraint to wrap. All methods except for validate
and check
are delegated to the value of this attribute.
METHODS
check ($value)
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.
validate ($value, $coerced_ref?)
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.
AUTHOR
Florian Ragwitz <rafl
@debian
.org>
COPYRIGHT AND LICENSE
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.