The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Verifier::Results - Results of a Data::Verifier verify

VERSION

version 0.56

SYNOPSIS

    use Data::Verifier;

    my $dv = Data::Verifier->new(profile => {
        name => {
            required    => 1,
            type        => 'Str',
            filters     => [ qw(collapse trim) ]
        },
        age  => {
            type        => 'Int'
        },
        sign => {
            required    => 1,
            type        => 'Str'
        }
    });

    my $results = $dv->verify({
        name => 'Cory', age => 'foobar'
    });

    $results->success; # no

    $results->is_invalid('name'); # no
    $results->is_invalid('age'); # yes

    $results->is_missing('name'); # no
    $results->is_missing('sign'); # yes

SERIALIZATION

Data::Verifier uses MooseX::Storage::Deferred to allow quick and easy serialization. So a quick call to freeze will serialize this object into JSON and thaw will inflate it. The only caveat is that we don't serialize the value attribute. Since coercion allows you to make the result any type you want, it can't reliably be serialized. Use original value if you are serializing Result objects and using them to refill forms or something.

  my $json = $results->freeze({ format => 'JSON' });
  # ...
  my $results = Data::Verifier::Results->thaw($json, { format => 'JSON' });

INTERNALS

This module has a hashref attribute fields. The keys are the names of the fields from the profile. The corresponding values are are either undef or a Data::Verifier::Field object.

The only keys that will be populated in the Result object are those that were listed in the profile. Any arbitrary fields will not be part of the result object, as they were not part of the profile. You should not query the result object for the state of any arbitrary fields. This will not throw any exceptions, but it may not return the results you want if you query for arbitrary field names.

ATTRIBUTES

fields

HashRef of fields in this Results object.

METHODS

get_field ($name)

Gets the field object, if it exists, for the name provided.

has_field ($name)

Returns true if the name in question is part of this result object. This should be true for any field that was in the profile.

set_field ($name)

Sets the field object (you shouldn't be doing this directly) for the name provided.

get_original_value ($name)

Get the original value for the specified field.

get_post_filter_value ($name)

Get the post-filter value for the specified field.

get_value ($name)

Returns the value for the specified field. The value may be different from the one originally supplied due to filtering or coercion.

get_values (@names)

Same concept as get_value but will return a list of respective values in the same order in which you provide the names.

is_invalid ($name)

Returns true if the specific field is invalid.

is_missing ($name)

Returns true if the specified field is missing.

is_valid ($name)

Returns true if the field is valid.

is_wrong ($name)

Returns true if the value was required and is missing or if the value did not pass it's type constraint. This is a one-stop method for determining if the field in question is "wrong".

merge ($other_results_object)

Merge an existing Data::Verifier::Results object into this one.

invalid_count

Returns the count of invalid fields in this result.

invalids

Returns a list of invalid field names.

missing_count

Returns the count of missing fields in this result.

missings

Returns a list of missing field names.

success

Returns true or false based on if the verification's success.

valids

Returns a list of keys for which we have valid values.

valid_count

Returns the number of valid fields in this Results.

valid_values

Returns a hash of valid values in the form of name = value>. This is a convenient method for instantiating Moose objects from your verified data.

AUTHOR

Cory G Watson <gphat@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Cold Hard Code, LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.