NAME

Valiant::Validator::Inclusion - Value must be one of a list

SYNOPSIS

package Local::Test::Inclusion;

use Moo;
use Valiant::Validations;

has status => (is=>'ro');
has type => (is=>'ro');

validates status => (
  inclusion => +{
    in => [qw/active retired/],
  },
);

validates type => (
  inclusion => +{
    in => \&available_types,
  },
);

sub available_types {
  my $self = shift;
  return (qw(student instructor));
}

my $object = Local::Test::Inclusion->new(
  status => 'running',
  type => 'janitor',
);

$object->validate;

warn $object->errors->_dump;

$VAR1 = {
  'status' => [
                'Status is not in the list'
              ],
  'type' => [
              'Type is not in the list'
            ],
};

DESCRIPTION

Value must be one of a list. This list can be given as an arrayref or as a reference to a method (for when you need to dynamically build the list).

SHORTCUT FORM

This validator supports the follow shortcut forms:

validates attribute => ( inclusion => [qw/a b c/], ... );

Which is the same as:

validates attribute => (
  inclusion => +{
    in => [qw/a b c/],
  },
);

This also works for the coderef form:

validates attribute => ( inclusion => \&coderef, ... );

validates attribute => (
  inclusion => +{
    in => \&coderef,
  },
);

GLOBAL PARAMETERS

This validator supports all the standard shared parameters: if, unless, message, strict, allow_undef, allow_blank.

SEE ALSO

Valiant, Valiant::Validator, Valiant::Validator::Each.

AUTHOR

See Valiant

COPYRIGHT & LICENSE

See Valiant