NAME

Validator::Custom::Rule - Rule object

SYNOPSYS

use Validator::Custom;
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.