From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

Validation::Class::Directive - Base Class for Validation Class Directives

VERSION

version 7.900059

SYNOPSIS

use strict;
has 'mixin' => 0;
has 'field' => 1;
has 'multi' => 0;
has 'message' => '%s has been blacklisted';
sub validate {
my $self = shift;
my ($proto, $field, $param) = @_;
if (defined $field->{check_blacklist} && $param) {
# is the parameter value blacklisted?
my @blacklist = read_file('/blacklist.txt');
$self->error if grep { $param =~ /^$_$/ } @blacklist;
}
}
1;

... in your validation class:

package MyApp::Person;
field ip_address => {
required => 1,
check_blacklist => 1
};
1;

... in your application:

package main;
my $person = MyApp::Person->new(ip_address => '0.0.0.0');
unless ($person->validates('ip_address')) {
# handle validation error
}

DESCRIPTION

You can extend Validation::Class by creating your own validation rules (directives). Validation::Class::Directive provides a base-class for you to use when creating new directive classes. Please see Validation::Class::Directives for a complete list of core directives.

AUTHOR

Al Newkirk <anewkirk@ana.io>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Al Newkirk.

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