NAME
Sidekick::Check - Plugin based validation mechanism
VERSION
version 0.0.1
SYNOPSIS
my $sc = Sidekick::Check->new();
my $ok = $sc->is( $value, 'filled', [ 'length', 10 ] );
my @errors = $sc->errors( $value, 'defined', sub { $_[1] eq 'test' } );
my $lengthok = $sc->is_length( $value, 10 );
DESCRIPTION
Sidekick::Check
provides a simple interface to handle validations and the ability to add additional plugins in a easy manner.
METHODS
new
Returns 'Sidekick::Check'.
is
my $ok = $sc->is( $value, @checks );
Returns 1 if all checks passed.
See "errors".
errors
my @errors = $sc->errors( $value, 'defined', sub { $_[1] =~ /^\w+$/ }, )
my $error = $sc->errors(
$value,
[ 'length', 10 ],
{
'is' => \&sub,
'args' => [ 1, 2 ],
'name' => 'special_test',
},
);
Returns an array of failed checks. In SCALAR context, returns the first error and exits.
Allowed check types:
ARRAY
@errors = $sc->errors( ..., [ 'length', 10 ] );
@errors = $sc->errors( ..., [ \&sub, 1, 2, 3 ] );
An array ref with the check to use and the arguments to pass.
CODE
@errors = $sc->errors( ..., \&sub );
@errors = $sc->errors( ..., sub { ... } );
An anonymous subroutine or a reference to one. Must return 1 for success.
HASH
@errors = $sc->errors( ..., { 'is' => 'filled' } );
@errors = $sc->errors( ..., { 'is' => \&sub, 'args' => [...], 'name' => 'teste' } );
A hash ref with the following keys:
is The check to use.
args The arguments to use with check.
name The name that is returned on error. This is specially usefull with anonymous subroutines.
SCALAR
@errors = $sc->errors( ..., 'defined' );
The name of the plugin to use.
is_*
my $defined = $sc->is_defined( $value );
my $lengthok = $sc->is_length( $value, 10 );
All plugins are mapped as a is_* method in Sidekick::Check. See "PLUGINS".
PLUGINS
package Sidekick::Check::Plugin::NAME
sub check {
my $self = shift; # 'Sidekick::Check'
my $value = shift; # the value to validate
my @args = @_ ; # additional args
# return 0 if it fails, otherwise 1.
...
}
SEE ALSO
AUTHOR
André Rivotti Casimiro <rivotti@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by André Rivotti Casimiro.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)