The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.