Name

Data::Validation - Check data values for conformance with constraints

Version

0.2.$Rev: 66 $

Synopsis

use Data::Validation;

sub check_field {
   my ($self, $stash, $id, $value) = @_;
   my $config = { exception   => q(Exception::Class),
                  constraints => $stash->{constraints} || {},
                  fields      => $stash->{fields}      || {},
                  filters     => $stash->{filters}     || {} };
   my $dv = eval { Data::Validation->new( %{ $config } ) };

   $self->throw( $EVAL_ERROR ) if ($EVAL_ERROR);

   return $dv->check_field( $id, $value );
}

sub check_form  {
   my ($self, $stash, $form) = @_;
   my $config = { exception   => q(Exception::Class),
                  constraints => $stash->{constraints} || {},
                  fields      => $stash->{fields}      || {},
                  filters     => $stash->{filters}     || {} };
   my $dv = eval { Data::Validation->new( %{ $config } ) };

   $self->throw( $EVAL_ERROR ) if ($EVAL_ERROR);

   return $dv->check_form( $stash->{form_prefix}, $form );
}

Description

This module implements filters and common constraints in builtin methods and uses a factory pattern to implement an extensible list of external filters and constraints

Data values are filtered first before testing against the constraints. The filtered data values are returned if they conform to the constraints, otherwise an exception is thrown

Configuration and Environment

The following are passed to the constructor

exception

Class capable of throwing an exception

constraints

Hash containing constraint attributes. Keys are the $id values passed to "check_field". See Data::Validation::Constraints

fields

Hash containing field definitions. Keys are the $id values passed to "check_field". Each field definition can contain a space separated list of filters to apply and a space separated list of constraints. Each constraint method must return true for the value to be accepted

filters

Hash containing filter attributes. Keys are the $id values passed to "check_field". See Data::Validation::Filters

Subroutines/Methods

check_form

$form = $dv->check_form( $prefix, $form );

Calls "check_field" for each of the keys in the $form hash. In the calls to "check_field" the $form keys have the $prefix prepended to them to create the key to the $fields hash

check_field

$value = $dv->check_field( $id, $value );

Checks one value for conformance. The $id is used as a key to the fields hash whose validate attribute contains the list of space separated constraint names. The value is tested against each constraint in turn. All tests must pass or the subroutine will use the exception class to throw an error

Diagnostics

None

Dependencies

Moose
Moose::Util::TypeConstraints
Data::Validation::Constraints
Data::Validation::Filters

Incompatibilities

There are no known incompatibilities in this module

Bugs and Limitations

There are no known bugs in this module. Please report problems to the address below. Patches are welcome

Author

Peter Flanigan, <Support at RoxSoft.co.uk>

License and Copyright

Copyright (c) 2008 Peter Flanigan. All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic

This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE