1Validation::Class::DireUcsteirveC(o3n)tributed Perl DocuVmaelnitdaattiioonn::Class::Directive(3)
2
3
4
6 Validation::Class::Directive - Base Class for Validation Class
7 Directives
8
10 version 7.900059
11
13 package Validation::Class::Directive::CheckBlacklist;
14
15 use base 'Validation::Class::Directive';
16
17 use strict;
18 use warnings;
19 use Validation::Class::Util;
20 use File::Slurp;
21
22 has 'mixin' => 0;
23 has 'field' => 1;
24 has 'multi' => 0;
25 has 'message' => '%s has been blacklisted';
26
27 sub validate {
28
29 my $self = shift;
30
31 my ($proto, $field, $param) = @_;
32
33 if (defined $field->{check_blacklist} && $param) {
34
35 # is the parameter value blacklisted?
36 my @blacklist = read_file('/blacklist.txt');
37
38 $self->error if grep { $param =~ /^$_$/ } @blacklist;
39
40 }
41
42 }
43
44 1;
45
46 ... in your validation class:
47
48 package MyApp::Person;
49
50 use Validation::Class;
51
52 field ip_address => {
53 required => 1,
54 check_blacklist => 1
55 };
56
57 1;
58
59 ... in your application:
60
61 package main;
62
63 use MyApp::Person;
64
65 my $person = MyApp::Person->new(ip_address => '0.0.0.0');
66
67 unless ($person->validates('ip_address')) {
68 # handle validation error
69 }
70
72 You can extend Validation::Class by creating your own validation rules
73 (directives). Validation::Class::Directive provides a base-class for
74 you to use when creating new directive classes. Please see
75 Validation::Class::Directives for a complete list of core directives.
76
78 Al Newkirk <anewkirk@ana.io>
79
81 This software is copyright (c) 2011 by Al Newkirk.
82
83 This is free software; you can redistribute it and/or modify it under
84 the same terms as the Perl 5 programming language system itself.
85
86
87
88perl v5.38.0 2023-07-21 Validation::Class::Directive(3)