Revision history for Perl module Validator::Custom
1.0201 2017-01-07
- improve document
1.02 2017-01-07
- Fixed typo: SYNOPSYS -> SYNOPSIS
- Fixed pod warning - multibyte unicode character requires "=encoding UTF-8"
- Fixed a couple of small typos in the doc
- Fix test because Object::Simple is updated.
1.01 2015-12-10
- add more simple interface for validation.
Documentation is rewrited completely.
I recommend current interface.
- add Validator::Custom::Validation object.
- add add_check method.
- add check method.
- add check_each method.
- add add_filter method.
- add filter method.
- add filter_each method.
- add the following checking functions.
ascii_graphic
number
int
in
- add the following filter functions.
remove_blank
trim
0.28
- improve decimal check. you can specify undef value which mean unlimit muximanu digits
Example:
Data: {num1 => '1233555.89345', num2 => '1121111.45', num3 => '12.555555555'}
Rule: $rule->require('num1')->check('decimal')
$rule->require('num2')->check({'decimal' => [undef, 2]})
$rule->require('num2')->check({'decimal' => [2, undef]})
0.27
- add to_array_remove_blank constraint.
0.26
- add filter method, this is check method alias for readability
- rename Validator::Custom::Rule array(this is added at 0.25) method to each
0.25
- add string constraint. This is used to check the value is string.
$rule->require('k1')->check('string')
If value is not defined or reference, this check return false.
- You can call multiple check calls.
$rule->check('string')->check('not_blank');
- You can write only $rule->require('k1')
from now, $rule->require('k1') take syntax error.
- message can write each check
$rule->require('k1')
->check('string')->message('k1 should be string')
->check('not_blank)->message('k1 should be not blank')
- add message fallback system.
If message is not set to some constraint, the message is automatically set
by using after message.
$rule->require('k1')
->check('string')->check('not_blank')->message('k1 should be string having length')
- add check_or method to Validator::Custom::Rule
$rule->require('k1')->check_or('blank', 'int');
This is improvemet of "or" validation, for exmpale 'blank || int'
- Validator::Custom::Result error_reason is DEPRECATED! This method don't work correct from now.
- add array method to Validator::Custom::Rule
$rule->require('nums')->array(1)->check('int');
This is improvement of array validation using "@"
$rule->require('nums')->check('@int');
0.24
- when default option is specified, result data become valid
(This is backword imcompatible, but old behavior is a little
wrong and new behavior is better)
0.23
- remove syntax attribute
- use constraints function from $_ in constraint function;
----------------------------------------------------
my $rule = [
title => [
sub { $_->blank($_[0]) || $_->regex($_[0], qr/[0-9]+/) }
]
];
----------------------------------------------------
- add create_rule method and new rule syntax
----------------------------------------------------
my $rule = $vc->create_rule;
$rule->require('id')->check(
'int'
)->message('id should be integer');
$rule->require('name')->check(
['not_blank' => 'name is emtpy'],
[{length => [1, 5]} => 'name is too long']
);
$rule->optional('age')->check(
'int'
)->default(20);
----------------------------------------------------
0.22
- remove Validator::Custom::Rules(EXPERIMANTAL) because this rule set can't manipulate
multiple rules well
0.21
- normalized_rule attribute(EXPERIMENTAL) is changed to rule_obj(EXPERIMENTAL)
rule become saved as object.
- validate method can receive Validator::Custom::Rule object(EXPERIMENTAL)
- add Validator::Custom::Rule and Validator::Custom::Rules to manipulate multiple rules easily
- add EXPERIMENTAL filter representation in filter function
{result => 1, output => $value} mean [1, $value];
0.20
- add EXPERIMENTAL feature that you can return custom error message
in user constraint function.
0.19
- suppress filter function undef warning.
0.18
- remove EXPERIMENTAL parse_rule method.
- add EXPERIMENTAL normalized_rule attribute.
- improved syntax error message.
0.17
- improved description.
0.16
- added EXPERIMANTAL parse_rule method
to know how Validator::Custom parse rule
0.15
- added length constraint syntax {length => {min => ..., max => ...}}
- added trim_uni, trim_uni_collapse, trim_uni_lead, trim_uni_trail
to trim unicode space charctor
0.1428
- fixed bug that number related constraint match unicode number by \d.
From now, only 0-9 is matched.
the following constraint functions is effected.
between, date_to_timepiece, datetime_to_timepiece, equal_tom,
greater_than, less_than, int, uint
- fixed bug that between constraint can't receive decimal number.
- fixed bug that equal_to constraint can't receive decimal number.
- fixed bug that greater_than constraint can't receive decimal number.
- fixed bug that less_than constraint can't receive decimal number.
- fixed but that not_space, space match unicode space character.
- fixed bug that trim, trim_collapse, trim_lead, trim_trail remove unicode space character.
0.1427
- fixed bug that missing parameter had not send to constraint function.
0.1426
- improved undefined value validation
- removed EXPERIMETAL status from Validator::Custom::Result::loose_data method
0.1425
- added EXPERIMENTAL Validator::Custom::Result loose_data method
- can set code reference to rule default option to get data at read time.
- changed backword compatible policy
------------------------------------------------------------------------
If a functionality is DEPRECATED, you can know it by DEPRECATED warnings
except for attribute method.
You can check all DEPRECATED functionalities by document.
DEPRECATED functionality is removed after five years,
but if at least one person use the functionality and tell me that thing
I extend one year each time you tell me it.
EXPERIMENTAL functionality will be changed without warnings.
------------------------------------------------------------------------
0.1424
- added to_array filter
0.1422
- added require option
0.1421
- removed EXPERIMENTAL status from DBIx::Custom::Result to_hash()
- removed EXPERIMENTAL status from js_fill_form_button,
- removed EXPERIMENTAL status from datetime_to_timepiece, date_to_timepiece
0.1420
updated pod
0.1419
fixed test
0.1418
fixed test
0.1417
fixed test
0.1416
adeed experimental datetime_to_timepiece constraint
0.1415
added experimental Validator::Custom::Result to_hash method
added experimental date_to_timepiece constraint
0.1414
fixed merge constraint bug
0.1413
added any constraint
fixed js_fill_form_button bug
0.1412
fixed tests
0.1411
added experimental js_fill_form_button method
0.1410
fixed negativate constraint bug
fixed "or" condition constraint function
0.1409
added space constraint function
0.1408
updated document
(experimental) added merge filter
deprecated shared_rule attribute
(experimental)improved "or" condition validation syntax
0.1407
fixed document
0.1406
updated document
0.1405
updated document
0.1404
deprecated calling register_constraint method from class.
removed the document of deprecated methods
0.1403
moved documents to Validator::Custom::Guides
0.1402
added is_valid('ARG') syntax
0.1401
fixed duprication result value([$value, $value] to $value])
renamed Validator::Custom::Result::has_missing_param to has_missing
renamed Validator::Custom::Reuslt::is_valid to is_ok. is_valid is deprecated
added experimental has_invalid
removed experimental default_message
added experimental message option
adeed experimantal copy option
added experimental default option
0.1304
added experimental "Validate::Custom::Result has_missing_param" method
0.1303
fix missing_params bugs
added experimental "default_messages" attributes
depricated "error_infos", "add_error_info", and "remove_error_info"
0.1302
added experimental "Validator::Custom::Result missing_params" attribute
0.1301
added experimental negative syntax
0.1211
fixed document
0.1210
required Perl 5.008001, enable Carp trust relationship
0.1209
fixed Carp trust relationship
0.1208
added the following constraints
trim
trim_lead
trim_trail
trim_collapse
0.1207
added the following constraints
not_defined
defined
not_space
not_blank
blank
int
uint
ascii
shift
duplication
length
regex
http_url
selected_at_least
greater_than
less_than
equal_to
between
decimal
in_array
0.1206
updated document
0.1205
updated document
0.1204
updated document
0.1203
updated document
0.1202
fixed document
fixed error message
added EXPERIMENTAL shared_rule attribute
0.1201
added Validator::Custom::Result message()
added Validator::Custom::Result messages()
added Validator::Custom::Result messages_to_hash()
added Validator::Custom::Result invalid_params()
added Validator::Custom::Result invalid_rule_keys()
added Validator::Custom::Result raw_data()
deprecated Validator::Custom::Result errors()
deprecated Validator::Custom::Result errors_to_hash()
deprecated Validator::Custom::Result error()
deprecated Validator::Custom::Result invalid_keys
0.1103
updated document.
Validator::Custom became stable. Backword compatible of 0.1103 is keeped in. You can use Validator::Custom at ease.
0.1102
removed add_constraint() method(not backword compatible)
0.1101
constraint function must return array reference, not array(not backword compatible)
removed Validator::Custom validation_rule attribute(not backword compatibe)
saved all value of data to Validator::Customm::Result data attribute(not backword compatible)
Validator::Custom::Result products attribute renamed to data(not backword compatible)
0.1002
add_constraint is depricated. it is renamed to register_constraint
0.1001
added Validator::Custom::data_filter()
added Validator::Custom::Result::errors_to_hash()
improved exception logic
0.0902
update document
0.0901
Validator::Custom error_infos data structure is changed(array ref to hash ref)
add or validation
0.0802
fix pod-coverage.t
0.0801
"rule" is added in place of "validaton_rule"
"validation_rule" is deprecated
updata document
"error_infos" and "add_error_info" is added to Validation::Custom::Result
0.0708
catch up with 'Object::Simple' update
0.0706
fix error message test
0.0705
catch up with 'Object::Simple' update
0.0704
cleanup
0.0702
cleanup
0.0701
add 'error' method
'is_invalid' method can receive a specified key.
0.0608
update document
fix corelative key bug
0.0607
improve error message
add syntax method for seeing validation rule syntax
0.0606
improve error message
delete Validator::Custom::Result errors_to method (not backword compatible)
delete Validator::Custom::Result products_to method (not backword compatible)
delete Validator::Custom::Result invalid_keys_to method (not backword compatible)
0.0605
catch up Object::Simple version up 2.0702
0.0604
catch up Object::Simple version up 2.0701
0.0603
catch up Object::Simple version up 2.0603
0.0602
catch up Object::Simple version up 2.0602
0.0601
add_constraint method can be used as object method and class method
constraints method can be used as object mehtod and class mehtod
0.0501
add 'is_valid' method to Validator::Custom::Result
0.0401
validate method return Validator::Custom::Result object, not $self (not backword compatible)
resutls method is renamed to products (not backword compatible)
0.0303
bag fix: second validation is fail when hash specify as constraint
0.0302
improve error message
0.0301
rename validators to validation_rule to understand easy (not backword compatible).
0.0211
add output accessor. errors_to, invalid_keys_to, results_to.
0.0210
bag fix : validator args is passed as empty array ref when args don't exists
0.0209
add : syntax sugur
add : invalid_keys accessors
0.0208
delete : some accessors
0.0207
add : some accessors
0.0206
change: options delete
change: the way to get result is changed
add : add some test
0.0205
change : Build.PL requires => { Object::Simple => 2.0018 }
add : can pass option to constraint function
add : results attribute
add : can inheritable customize
add : error_stock attribute
add : correlation check
0.0204
catch up Object::Simple update 2.0003
change: errors methods dereference
0.0203
rename add_validator to add_constraint
rename validators to constraints
rename $VALIDATORS to $CONSTRINTS
catch up Object::Simple bag fix
0.0202
bag fix: $validator is spliced
0.0201
first release
0.01_01
first develope release