Jesse Luehrs > MooseX-Validation-Doctypes-0.05 > MooseX::Validation::Doctypes::Errors

Download:
MooseX-Validation-Doctypes-0.05.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.05   Source  

NAME ^

MooseX::Validation::Doctypes::Errors - error class for MooseX::Validation::Doctypes

VERSION ^

version 0.05

SYNOPSIS ^

  use MooseX::Validation::Doctypes;

  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" : [],
      }
  ]);

  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;

DESCRIPTION ^

This class holds the errors that were found when validating a doctype. There are two types of errors: either an existing piece of data didn't validate against the given type constraint, or extra data was provided that wasn't listed in the doctype. These two types correspond to the errors and extra_data attributes described below.

ATTRIBUTES ^

errors

Returns the errors that were detected. The return value will be a data structure with the same form as the doctype, except only leaves corresponding to values that failed to match their corresponding type constraint. The values will be an appropriate error message.

extra_data

Returns the extra data that was detected. The return value will be a data structure with the same form as the incoming data, except only containing leaves for data which was not represented in the doctype. The values will be the values from the actual data being validated.

METHODS ^

has_errors

Returns true if any errors were found when validating the data against the type constraints.

has_extra_data

Returns true if any extra data was found when comparing the data to the doctype.

TO_JSON

Returns a hashref with keys of errors and extra_data, containing the values of those attributes. This allows JSON to properly encode the error object.

stringify

Returns a human-readable string containing the error data in the object. This is used for the stringification overload.

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
syntax highlighting: