Kossy::Validator - form validator
use Kossy::Validator; my $req = Plack::Request->new($env); my $result = Kossy::Validator->check($req, [ 'q' => [['NOT_NULL','query must be defined']], 'level' => { default => 'M', # or sub { 'M' } rule => [ [['CHOICE',qw/L M Q H/],'invalid level char'], ], }, '@area' => { rule => [ ['UINT','area must be uint'], [['CHOICE', (0..40)],'invalid area'], ], }, ]); $result->has_error:Flag $result->messages:ArrayRef[`Str] my $val = $result->valid('q'); my @val = $result->valid('area'); my $hash = $result->valid:Hash::MultiValue;
minimalistic form validator used in Kossy
['CHOICE',qw/dog cat/]
int
unsigned int
natural number
floating number
['@SELECTED_NUM',min,max]
all selected values are unique
my $result = Kossy::Validator->check($req,[ 'q' => [ [sub{ my ($req,$val) = @_; },'invalid'] ], ]); my $result = Kossy::Validator->check($req,[ 'q' => [ [[sub{ my ($req,$val,@args) = @_; },0,1],'invalid'] ], ]);
add to %Kossy::Validator::VALIDATOR
local $Kossy::Validator::VALIDATOR{MYRULE} = sub { my ($req, $val, @args) = @_; return 1; }; local $Kossy::Validator::VALIDATOR{'@MYRULE2'} = sub { my ($req, $vals, $num) = @_; return if @$vals != $num; return if uniq(@$vals) == $num; }; Kossy::Validator->check($req,[ key1 => [['MYRULE','my rule']], '@key2' => { rule => [ [['@MYRULE2',3], 'select 3 items'], [['CHOICE',qw/1 2 3 4 5/], 'invalid'] ], } ]);
if rule name start with '@', all values are passed as ArrayRef instead of last value.
Kossy
Copyright (C) Masahiro Nagano.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Masahiro Nagano <kazeburo@gmail.com>
To install Kossy::Validator, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Kossy::Validator
CPAN shell
perl -MCPAN -e shell install Kossy::Validator
For more information on module installation, please visit the detailed CPAN module installation guide.