Scroll to navigation

Validation::Class::Directive(3pm) User Contributed Perl Documentation Validation::Class::Directive(3pm)

NAME

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

VERSION

version 7.900059

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.

2023-06-11 perl v5.36.0