NAME
Data::Domain::Dependencies - give Data::Domain the same magic as Params::Validate::Dependencies
DESCRIPTION
A sub-class of Data::Domain which provides functions and objects to let Data::Domain use the same functions as Params::Validate::Dependencies.
NB now this only works on perl 5.18 and higher as Data::Domain uses some features of more modern perls.
INCOMPATIBLE CHANGES
As of version 2.00, Data::Domain::Dependencies no longer has the generate_documentation
method. This is because of incompatible changes in the Data::Domain API. If you need this method then you should use Data::Domain::Dependencies version 1.41, and Data::Domain version 1.13.
See https://github.com/DrHyde/perl-modules-Params-Validate-Dependencies/issues/28
SYNOPSIS
This creates a domain which, when passed a hashref to inspect, will check that it contains at least one of an 'alpha' or 'beta' key, or both of 'foo' and 'bar'.
use Data::Domain::Dependencies qw(:all);
my $domain = Dependencies(
any_of(
qw(alpha beta),
all_of(qw(foo bar))
)
);
my $errors = $domain->inspect(\%somehash);
SUBROUTINES and EXPORTS
Nothing is exported by default, but you can export any of the *_of functions of Params::Validate::Dependencies, and the 'Dependencies' and 'exclusively' functions. They are all available under the 'all' tag.
Dependencies
This takes a code-ref argument as returned by the *_of functions.
It returns an object which is a sub-class of Data::Domain::Dependencies and so has an 'inspect' method that you can use to check for errors when passing it a hash-ref.
new
'Dependencies' above is really just a thin wrapper around this constructor. You are encouraged to not call this directly.
LIES
Some of the above is incorrect. If you really want to know what's going on, look at Params::Validate::Dependencies::Extending.
BUGS, LIMITATIONS, and FEEDBACK
I like to know who's using my code. All comments, including constructive criticism, are welcome.
Please report any bugs either by email or at https://github.com/DrHyde/perl-modules-Params-Validate-Dependencies/issues.
Bug reports should contain enough detail that I can replicate the problem and write a test. The best bug reports have those details in the form of a .t file. If you also include a patch I will love you for ever.
SEE ALSO
Params::Validate::Dependencies
SOURCE CODE REPOSITORY
git://github.com/DrHyde/perl-modules-Params-Validate-Dependencies.git
https://github.com/DrHyde/perl-modules-Params-Validate-Dependencies/
COPYRIGHT and LICENCE
Copyright 2024 David Cantrell <david@cantrell.org.uk>
This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
CONSPIRACY
This module is also free-as-in-mason.