NAME
Validation::Class::Directive - Base Class for Validation Class Directives
VERSION
version 7.900017
SYNOPSIS
package Validation::Class::Plugin::CheckBlacklist;
use base 'Validation::Class::Directive';
use Validation::Class::Util;
use File::Slurp;
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;
use Validation::Class;
field ip_address => {
    required        => 1,
    check_blacklist => 1
};
1;... in your application:
package main;
use MyApp::Person;
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.