MooseX::Meta::TypeConstraint::ForceCoercion3pm
Force coercion when validating type constraints
Usage
use MooseX::Types:::Moose qw/Str Any/;use Moose::Util::TypeConstraints;use MooseX::Meta::TypeConstraint::ForceCoercion;# get any type constraintmy $tc = Str;# declare one or more coercions for itcoerce $tc,from Any,via { ... };# wrap the $tc to force coercionmy $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');
Version
version 0.01
Overview
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.
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.
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 3 times.