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).
ATTRIBUTES
This validator supports the following attributes:
in
The list of allowed values, either an arrayref or a coderef that returns the list.
inclusion
The error message used when the value is not in the list. Default is translation tag 'inclusion'.
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