The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

MooseX::Meta::TypeConstraint::Doctype - Moose type constraint for validating doctypes

VERSION

version 0.05

SYNOPSIS

doctype 'Location' => {
id => 'Str',
city => 'Str',
state => 'Str',
country => 'Str',
zipcode => 'Int',
};
doctype 'Person' => {
id => 'Str',
name => {
# ... nested data structures
first_name => 'Str',
last_name => 'Str',
},
title => 'Str',
# ... complex Moose types
friends => 'ArrayRef[Person]',
# ... using doctypes same as regular types
address => 'Maybe[Location]',
};
use JSON;
# note the lack of Location,
# which is fine because it
# was Maybe[Location]
my $data = decode_json(q[
{
"id": "1234-A",
"name": {
"first_name" : "Bob",
"last_name" : "Smith",
},
"title": "CIO",
"friends" : [],
}
]);
my $person = find_type_constraint('Person');
die "Data is invalid" unless $person->check($data);

DESCRIPTION

This module implements the actual type constraint that is created by the doctype function in MooseX::Validation::Doctypes. It is a subclass of Moose::Meta::TypeConstraint which adds a required doctype parameter, and automatically generates a constraint and message which validate based on that doctype (as described in the MooseX::Validation::Doctypes docs).

ATTRIBUTES

doctype

The doctype to validate. Required.

AUTHOR

Jesse Luehrs <doy at cpan dot org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 by Jesse Luehrs.

This is free software, licensed under:

The MIT (X11) License