Provided by: libvalidation-class-perl_7.900057-2_all bug

NAME

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

VERSION

       version 7.900057

SYNOPSIS

           package Validation::Class::Directive::CheckBlacklist;

           use base 'Validation::Class::Directive';

           use strict;
           use warnings;
           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.