NAME
Validation::Class::Directive - Base Class for Validation Class Directives
VERSION
version 7.900059
SYNOPSIS
use
strict;
use
warnings;
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.