NAME
Params::Profile - module for registering Parameter profiles
SYNOPSIS
package Foo::Bar;
use Params::Profile;
### Single profile
Params::Profile->register_profile(
'method' => 'subroto',
'profile' => {
testkey1 => { required => 1 },
testkey2 => {
required => 1,
allow => qr/^\d+$/,
},
testkey3 => {
allow => qr/^\w+$/,
},
},
);
sub subroto {
my (%params) = @_;
return unlesss Params::Profile->validate('params' => \%params);
### DO SOME STUFF HERE ...
}
my $profile = Params::Profile->get_profile('method' => 'subroto');
### Multiple Profile
Params::Profile->register_profile(
'method' => 'subalso',
'profile' => [
'subroto',
{
testkey4 => { required => 1 },
testkey5 => {
required => 1,
allow => qr/^\d+$/,
},
testkey6 => {
allow => qr/^\w+$/,
},
},
],
);
sub subalso {
my (%params) = @_;
### Checks parameters agains profile of subroto and above registered
### profile
return unlesss Params::Profile->validate('params' => \%params);
### DO SOME STUFF HERE ...
}
DESCRIPTION
Params::Profile provides a mechanism for a centralised Params::Check or
a Data::FormValidater profile. You can bind a profile to a
class::subroutine, then, when you are in a subroutine you can simply
call Params::Profile->check($params) of
Params::Profile->validate($params) to validate against this profile.
Validate will return true or false on successfull or failed validation.
Check will return what "Data::FormValidator" or "Params::Check" would
return. (For "Params::Check" this is simply a hash with the validated
parameters , for "Data::FormValidator", this is a
"Data::FormValidator::Results" object)
Object Methods
Params::Profile->register_profile('method' => $method, 'profile' =>
$profile [, caller => $callerclass )
Register a new profile for method for the called-from caller class.
Instead of a profile, you could give a STRING containing the method from
which you want to use the profile...or simpler saying: make an alias to
a profile. You can also give an ARRAYREF containing both strings
(defining the aliases) and HASHREFS, defining profiles which then will
be combined (See second example in SYNOPSYS). When you provide the
optional caller option, you define the class where the given method is
defined.
Params::Profile->get_profile( method => $method [, caller => $caller ]);
Returns the profile registered for $method, or when no $method is given,
returns the profile for caller.
Params::Profile->verify_profiles( \@methods );
Verifies for each method in list, if the profile exists. Returns undef
when it doesn't. Also checks for aliases which point to no existing
profiles.
Params::Profile->clear_profiles();
Clear the loaded profiles.
Params::Profile->get_profiles()
Just return a hash containing all the registered profiles, it is in the
form: method => [ \%profile ]
Params::Profile->validate( params => %params [, method => $method ] )
When given an hash of key->value pairs, this sub will check the values
against the loaded profile. Returns true when it validates, otherwise
returns false. It will check against the loaded profile for the given
method, or when method doesn't exist, against the caller
Params::Profile->check( params => %params [, method => $method ] )
When given an hash of key->value pairs, this sub will check the values
against the loaded profile. It will check against the loaded profile for
the given method, or when method doesn't exist, against the caller.
Depending on the used profile, it will return %hash with values for a
Params::Check profile. Or an object Data::FormValidator::Results when
the laoded profile is a Data::FormValidator profile.
AUTHOR
This module by
Michiel Ootjers <michiel@cpan.org>.
and
Jos Boumans <kane@cpan.org>.
ACKNOWLEDGEMENTS
Thanks to Jos Boumans for "Params::Check", and the authors of
"Data::FormValidator"
COPYRIGHT
This module is copyright (c) 2002 Michiel Ootjers <michiel@cpan.org>.
All rights reserved.
This library is free software; you may redistribute and/or modify it
under the same terms as Perl itself.