From 475181f3ea5e4525c76d84303d66de99eafbfccb Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 9 Oct 2012 23:19:32 -0500 Subject: docs --- lib/MooseX/Validation/Doctypes.pm | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) (limited to 'lib/MooseX/Validation/Doctypes.pm') diff --git a/lib/MooseX/Validation/Doctypes.pm b/lib/MooseX/Validation/Doctypes.pm index 668c4f0..c29e125 100644 --- a/lib/MooseX/Validation/Doctypes.pm +++ b/lib/MooseX/Validation/Doctypes.pm @@ -1,6 +1,7 @@ package MooseX::Validation::Doctypes; use strict; use warnings; +# ABSTRACT: validation of nested data structures with Moose type constraints use MooseX::Meta::TypeConstraint::Doctype; @@ -11,6 +12,49 @@ use Sub::Exporter -setup => { }, }; +=head1 SYNOPSIS + + use MooseX::Validation::Doctypes; + + doctype 'Person' => { + id => 'Str', + name => 'Str', + title => 'Str', + }; + + use JSON; + + my $data = decode_json('{"id": "1234-A", "name": "Bob", "title": "CIO"}'); + + use Moose::Util::TypeConstraints; + + my $person = find_type_constraint('Person'); + my $errors = $person->validate($data); + + use Data::Dumper; + + warn Dumper($errors->errors) if $errors->has_errors; + warn Dumper($errors->extra_data) if $errors->has_extra_data; + +=head1 DESCRIPTION + +This module allows you to declare L type constraints to validate nested +data structures as you may get back from a JSON web service or something along +those lines. The doctype declaration can be any arbitrarily nested structure of +hashrefs and arrayrefs, and will be used to validate a data structure which has +that same form. The leaf values in the doctype should be Moose type +constraints, which will be used to validate the leaf nodes in the given data +structure. + +=cut + +=func doctype $name, $doctype + +Declares a new doctype type constraint. C<$name> is optional, and if it is not +given, an anonymous type constraint is created instead. + +=cut + sub doctype { my $name; $name = shift if @_ > 1; @@ -32,4 +76,48 @@ sub doctype { return $tc; } +=head1 BUGS + +No known bugs. + +Please report any bugs through RT: email +C, or browse to +L. + +=head1 SEE ALSO + +L + +L + +=head1 SUPPORT + +You can find this documentation for this module with the perldoc command. + + perldoc MooseX::Validation::Doctypes + +You can also look for information at: + +=over 4 + +=item * AnnoCPAN: Annotated CPAN documentation + +L + +=item * CPAN Ratings + +L + +=item * RT: CPAN's request tracker + +L + +=item * Search CPAN + +L + +=back + +=cut + 1; -- cgit v1.2.3-54-g00ecf