NAME

MooX::Should - optional type restrictions for Moo attributes

VERSION

version v0.1.4

SYNOPSIS

use Moo;

use MooX::Should;
use Types::Standard -types;

has thing => (
  is     => 'ro',
  should => Int,
);

DESCRIPTION

This module is basically a shortcut for

use Devel::StrictMode;
use PerlX::Maybe;

has thing => (
        is  => 'ro',
  maybe isa => STRICT ? Int : undef,
);

It allows you to completely ignore any type restrictions on Moo attributes at runtime, or to selectively enable them.

Note that you can specify a (weaker) type restriction for an attribute:

use Types::Common::Numeric qw/ PositiveInt /;
use Types::Standard qw/ Int /;

has thing => (
  is     => 'ro',
  isa    => Int,
  should => PositiveInt,
);

but this is equivalent to

use Devel::StrictMode;

has thing => (
  is     => 'ro',
  isa    => STRICT ? PositiveInt : Int,
);

SEE ALSO

SOURCE

The development version is on github at https://github.com/robrwo/MooX-Should and may be cloned from git://github.com/robrwo/MooX-Should.git

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/robrwo/MooX-Should/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

Theo van Hoesel <vanhoesel@cpan.org>

Originally written by Robert Rothenberg <rrwo@cpan.org>.

CONTRIBUTORS

  • Mohammad S Anwar <mohammad.anwar@yahoo.com>

  • Robert Rothenberg <rrwo@cpan.org>

  • Theo van Hoesel <tvanhoesel@perceptyx.com>

  • Zakariyya Mughal <zaki.mughal@gmail.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018-2021 by Robert Rothenberg.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)