MVC::Neaf::X::Form::Wildcard - A special case form with unforeknown fields
use MVC::Neaf::X::Form::Wildcard; # once during application setup phase my $form = MVC::Neaf::X::Form::Wildcard->new( [ [ qr/name\d+/ => qr/...*/ ], ... ] ); # much later, multiple times my $checked = $form->validate( { name1 => 'foo', surname2 => 'bar', name5 => 'o' } ); $checked->fields; # ( 'name1', 'name5' ) # ONLY the matched fields $checked->is_valid; # false # because of next line $checked->error; # { name5 => 'BAD_FORMAT' } $checked->data; # { name1 => 'foo' } # Data that passed validation $checked->raw; # { name1 => 'foo', name5 => 'o' } # Semi-good data to send back to user for amendment, # if needed # Note that surname2 did NOT affect anything at all.
This module provides simple yet powerful validation method for plain hashes in cases where the fields are not known beforehand.
The validation rules come as tuples. A tuple containes name validation regexp, value validation regexp, and possibly other fields (not implemented yet).
All hash keys are filtered through name rules. In case of match, all other rules are applied, resulting in either matching or non-matching field that ends up in data or error hashes, respectively.
data
error
A field that doesn't match anything is let through.
Create a new validator from rules.
More options may follow in the future, but now there are none.
Returns a MVC::Neaf::X::Form::Data object with keys of \%user_input, filtered by the rules.
This module is part of MVC::Neaf suite.
Copyright 2016-2019 Konstantin S. Uvarin khedin@cpan.org.
khedin@cpan.org
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
To install MVC::Neaf, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MVC::Neaf
CPAN shell
perl -MCPAN -e shell install MVC::Neaf
For more information on module installation, please visit the detailed CPAN module installation guide.