Data::InputMonster - consume data from multiple sources, best first; om nom nom!
version 0.011
This module lets you describe a bunch of input fields you expect. For each field, you can specify validation, a default, and multiple places to look for a value. The first valid value found is accepted and returned in the results.
This code is effectively abandonware. Although releases will sometimes be made to update contact info or to fix packaging flaws, bug reports will mostly be ignored. Feature requests are even more likely to be ignored. (If someone takes up maintenance of this code, they will presumably remove this notice.)
my $monster = Data::InputMonster->new({ fields => { field_name => \%field_spec, ... }, });
This builds a new monster. For more information on the %field_spec parameters, see below.
%field_spec
my $result = $monster->consume($input, \%arg);
This method processes the given input and returns a hashref of the finally accepted values. $input can be anything; it is up to the field definitions to expect and handle the data you plan to feed the monster.
$input
Valid arguments are:
no_default_for - a field name or arrayref of field names for which to NOT fall back to default values
Each field is defined by a hashref with the following entries:
sources - an arrayref of sources; see below; required filter - a coderef to preprocess candidate values check - a coderef to validate candidate values store - a coderef to store accepted values default - a value to use if no source provides an acceptable value
Sources may be given in one of two formats:
[ source_name => $source, ... ] [ $source_1, $source_2, ... ]
In the second form, sources will be assigned unique names.
The source value is a coderef which, handed the $input argument to the consume method, returns a candidate value (or undef). It is also handed a hashref of relevant information, most importantly field_name.
consume
field_name
A filter is a coderef that works by altering $_.
$_
If given, check must be a coderef that inspects $_ and returns a true if the value is acceptable.
Store is called if a value is accepted. It is passed the monster and a hashref with the following entries:
value - the value accepted source - the name of the source from which the value was accepted input - the input given to the consume method field_name - the field name
If default is given, it must be a simple scalar (in which case that is the default) or a coderef that will be called to provide a default value as needed.
Ricardo SIGNES <rjbs@semiotic.systems>
This software is copyright (c) 2021 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Data::InputMonster, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::InputMonster
CPAN shell
perl -MCPAN -e shell install Data::InputMonster
For more information on module installation, please visit the detailed CPAN module installation guide.