Scroll to navigation

MooseX::TraitFor::Meta::TypeConstraint::Mooish(3pm) User Contributed Perl Documentation MooseX::TraitFor::Meta::TypeConstraint::Mooish(3pm)

NAME

MooseX::TraitFor::Meta::TypeConstraint::Mooish - Handle Moo-style constraints

VERSION

This document describes version 0.001 of MooseX::TraitFor::Meta::TypeConstraint::Mooish - released March 12, 2015 as part of MooseX-Meta-TypeConstraint-Mooish.

SYNOPSIS

This trait implements the functionality described in MooseX::Meta::TypeConstraint::Mooish, and you, dear reader, are encouraged to read about it over there. Here we simply document the nuts and bolts.

DESCRIPTION

    # determining where this goes is left as an exercise for the reader
    with 'MooseX::TraitFor::Meta::TypeConstraint::Mooish';

ATTRIBUTES

original_constraint

The original constraint CodeRef is stashed away here.

mooish

If true, the constraint should be considered written in the style of Moo constraints; that is, if an exception is thrown the constraint is considered to have failed; otherwise it passes. Return values are ignored.

Default is true.

METHODS

original_constraint()

Reader for the "original_constraint" attribute; returns the original constraint as passed to new().

has_original_constraint()

Predicate for the "original_constraint" attribute.

mooish()

Reader for the "mooish" attribute.

compile_type_constraint

If "mooish" is true, we wrap the "original_constraint" in a sub that translates Moo behaviors (die on fail; otherwise success) to Moose::Meta::TypeConstraint expectations (false on fail; true on success).

We stash the original constraint in "original_constraint" (surprise!), and set the constraint attribute to the wrapped constraint.

create_child_type

Subtypes created here are not mooish, unless an explicit "mooish =" 1> is passed.

SEE ALSO

Please see those modules/websites for more information related to this module.
  • MooseX::Meta::TypeConstraint::Mooish
  • MooseX::Meta::TypeConstraint::Mooish

SOURCE

The development version is on github at <http://https://github.com/RsrchBoy/moosex-meta-typeconstraint-mooish> and may be cloned from <git://https://github.com/RsrchBoy/moosex-meta-typeconstraint-mooish.git>

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/RsrchBoy/moosex-meta-typeconstraint-mooish/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

Chris Weyl <cweyl@alumni.drew.edu>

I'm a material boy in a material world

Please note I do not expect to be gittip'ed or flattr'ed for this work, rather it is simply a very pleasant surprise. I largely create and release works like this because I need them or I find it enjoyable; however, don't let that stop you if you feel like it ;)

Flattr this <https://flattr.com/submit/auto?user_id=RsrchBoy&url=https%3A%2F%2Fgithub.com%2FRsrchBoy%2Fmoosex-meta-typeconstraint-mooish&title=RsrchBoy's%20CPAN%20MooseX-Meta-TypeConstraint-Mooish&tags=%22RsrchBoy's%20MooseX-Meta-TypeConstraint-Mooish%20in%20the%20CPAN%22>, gittip me <https://www.gittip.com/RsrchBoy/>, or indulge my Amazon Wishlist <http://bit.ly/rsrchboys-wishlist>... If you so desire.

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Chris Weyl.

This is free software, licensed under:

  The GNU Lesser General Public License, Version 2.1, February 1999
2015-03-13 perl v5.20.2