MooseX::Meta::TypeConstraint::ForceCoercion(3pm)

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 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');

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.

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 3 times.

  1. 6.0–9
  2. 10
  3. 11
  4. 12–13

Author

  Florian Ragwitz <[email protected]>

From libmoosex-meta-typeconstraint-forcecoercion-perl 0.01-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.