Jesse Luehrs > Moose > Moose::Meta::TypeConstraint

Download:
Moose-2.0604.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  10
Open  39
Stalled  5
View/Report Bugs
Module Version: 2.0604   Source   Latest Release: Moose-2.1210

NAME ^

Moose::Meta::TypeConstraint - The Moose Type Constraint metaclass

VERSION ^

version 2.0604

DESCRIPTION ^

This class represents a single type constraint. Moose's built-in type constraints, as well as constraints you define, are all stored in a Moose::Meta::TypeConstraint::Registry object as objects of this class.

INHERITANCE ^

Moose::Meta::TypeConstraint is a subclass of Class::MOP::Object.

METHODS ^

Moose::Meta::TypeConstraint->new(%options)

This creates a new type constraint based on the provided %options:

  • name

    The constraint name. If a name is not provided, it will be set to "__ANON__".

  • parent

    A Moose::Meta::TypeConstraint object which is the parent type for the type being created. This is optional.

  • constraint

    This is the subroutine reference that implements the actual constraint check. This defaults to a subroutine which always returns true.

  • message

    A subroutine reference which is used to generate an error message when the constraint fails. This is optional.

  • coercion

    A Moose::Meta::TypeCoercion object representing the coercions to the type. This is optional.

  • inlined

    A subroutine which returns a string suitable for inlining this type constraint. It will be called as a method on the type constraint object, and will receive a single additional parameter, a variable name to be tested (usually "$_" or "$_[0]".

    This is optional.

  • inline_environment

    A hash reference of variables to close over. The keys are variables names, and the values are references to the variables.

  • optimized

    This option is deprecated.

    This is a variant of the constraint parameter that is somehow optimized. Typically, this means incorporating both the type's constraint and all of its parents' constraints into a single subroutine reference.

$constraint->equals($type_name_or_object)

Returns true if the supplied name or type object is the same as the current type.

$constraint->is_subtype_of($type_name_or_object)

Returns true if the supplied name or type object is a parent of the current type.

$constraint->is_a_type_of($type_name_or_object)

Returns true if the given type is the same as the current type, or is a parent of the current type. This is a shortcut for checking equals and is_subtype_of.

$constraint->coerce($value)

This will attempt to coerce the value to the type. If the type does not have any defined coercions this will throw an error.

If no coercion can produce a value matching $constraint, the original value is returned.

$constraint->assert_coerce($value)

This method behaves just like coerce, but if the result is not valid according to $constraint, an error is thrown.

$constraint->check($value)

Returns true if the given value passes the constraint for the type.

$constraint->validate($value)

This is similar to check. However, if the type is valid then the method returns an explicit undef. If the type is not valid, we call $self->get_message($value) internally to generate an error message.

$constraint->assert_valid($value)

Like check and validate, this method checks whether $value is valid under the constraint. If it is, it will return true. If it is not, an exception will be thrown with the results of $self->get_message($value).

$constraint->name

Returns the type's name, as provided to the constructor.

$constraint->parent

Returns the type's parent, as provided to the constructor, if any.

$constraint->has_parent

Returns true if the type has a parent type.

$constraint->parents

Returns all of the types parents as an list of type constraint objects.

$constraint->constraint

Returns the type's constraint, as provided to the constructor.

$constraint->get_message($value)

This generates a method for the given value. If the type does not have an explicit message, we generate a default message.

$constraint->has_message

Returns true if the type has a message.

$constraint->message

Returns the type's message as a subroutine reference.

$constraint->coercion

Returns the type's Moose::Meta::TypeCoercion object, if one exists.

$constraint->has_coercion

Returns true if the type has a coercion.

$constraint->can_be_inlined

Returns true if this type constraint can be inlined. A type constraint which subtypes an inlinable constraint and does not add an additional constraint "inherits" its parent type's inlining.

$constraint->hand_optimized_type_constraint

This method is deprecated.

Returns the type's hand optimized constraint, as provided to the constructor via the optimized option.

$constraint->has_hand_optimized_type_constraint

This method is deprecated.

Returns true if the type has an optimized constraint.

$constraint->create_child_type(%options)

This returns a new type constraint of the same class using the provided %options. The parent option will be the current type.

This method exists so that subclasses of this class can override this behavior and change how child types are created.

BUGS ^

See "BUGS" in Moose for details on reporting bugs.

AUTHOR ^

Moose is maintained by the Moose Cabal, along with the help of many contributors. See "CABAL" in Moose and "CONTRIBUTORS" in Moose for details.

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Infinity Interactive, Inc..

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: