The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Validator::Custom::Rule - Rule object

SYNOPSYS

my $vc = Validator::Custom->new;
# Create rule object
my $rule = $vc->create_rule;
$rule->require('id')->check(
'ascii'
);
$rule->optional('name')->check(
'not_blank'
);
# Validate
my $data = {id => '001', name => 'kimoto'};
my $result = $vc->validate($data, $rule);
# Option
$rule->require('id')->default(4)->copy(0)->message('Error')->check(
'not_blank'
);

DESCRIPTION

Validator::Custom::Rule is the class to parse rule and store it as object.

ATTRIBUTES

rule

my $content = $rule_obj->rule;
$rule_obj = $rule->rule($content);

Content of rule object.

METHODS

each

$rule->each(1);

Tell checke each element.

check

$rule->check('not_blank')->check('ascii');

Add constraints to current topic.

check_or

$rule->check_or('not_blank', 'ascii');

Add "or" condition constraints to current topic.

copy

$rule->copy(0);

Set copy option

default

$rule->default(0);

Set default option

filter

$rule->filter('trim');

This is check method alias for readability.

message

$rule->require('name')
->check('not_blank')->message('should be not blank')
->check('int')->message('should be int');

Set message for each check.

Message is fallback to before check so you can write the following way.

$rule->require('name')
->check('not_blank')
->check('int')->message('should be not blank and int');

name

$rule->name('key1');

Set result key name

optional

$rule->optional('id');

Set key and set require option to 0.

require

$rule->require('id');
$rule->require(['id1', 'id2']);

Set key.

parse

$rule_obj = $rule_obj->parse($rule);

Parse rule and store it to rule attribute.