NAME
Data::Manager - The Marriage of Message::Stack & Data::Verifier
VERSION
version 0.10
SYNOPSIS
use
Data::Manager;
use
Data::Verifier;
my
$dm
= Data::Manager->new;
# Create a verifier for the 'billing_address'
my
$verifier
= Data::Verifier->new(
profile
=> {
address1
=> {
required
=> 1,
type
=>
'Str'
}
# ... more fields
}
);
$dm
->set_verifier(
'billing_address'
,
$verifier
);
# Addresses are the same, reuse the verifier
$dm
->set_verifier(
'shipping_address'
,
$verifier
);
my
$ship_data
= {
address1
=> {
'123 Test Street'
},
# ... more
};
my
$bill_data
=> {
address1
=> {
'123 Test Street'
}
# ... more
};
$dm
->verify(
'billing_address'
,
$bill_data
);
$dm
->verify(
'shipping_address'
,
$ship_data
);
# Later...
my
$bill_results
=
$dm
->get_results(
'billing_address'
);
my
$bill_stack
=
$dm
->messages_for_scope(
'billing_address'
);
my
$ship_results
=
$dm
->get_results(
'shipping_address'
);
my
$ship_stack
=
$dm
->messages_for_scope(
'shipping_address'
);
DESCRIPTION
Data::Manager provides a convenient mechanism for managing multiple Data::Verifier inputs with a single Message::Stack, as well as convenient retrieval of the results of verification.
This module is useful if you have complex forms and you'd prefer to create separate Data::Verifier objects, but want to avoid creating a complex hashref of your own creation to manage things.
It should also be noted that if married with MooseX::Storage, this entire object and it's contents can be serialized. This maybe be useful with Catalyst's flash
for storing the results of verification between redirects.
SERIALIZATION
The Data::Manager object may be serialized thusly:
my
$ser
=
$dm
->freeze({
format
=>
'JSON'
});
# later
my
$dm
= Data::Manager->thaw(
$ser
, {
format
=>
'JSON'
});
This is possible thanks to the magic of MooseX::Storage. All attributes except verifiers
are stored. Serialization causes the verifiers attribute to be set to undefined, as those objects are not serializable.
ATTRIBUTES
messages
The Message::Stack object for this manager. This attribute is lazily populated, parsing the Data::Verifier::Results objects. After fetching this attribute any changes to the results will not be reflected in the message stack.
results
HashRef of Data::Verifier::Results objects, keyed by scope.
verifiers
HashRef of Data::Verifier objects, keyed by scope.
METHODS
messages_for_scope ($scope)
Returns a Message::Stack object containing messages for the specified scope.
get_results ($scope)
Gets the Data::Verifier::Results object for the specified scope.
set_results ($scope, $results)
Sets the Data::Verifier::Results object for the specified scope.
success
Convenience method that checks success
on each of the results in this manager. Returns false if any are false.
verify ($scope, $data);
Verify the data against the specified scope. After verification the results and messages will be automatically created and stored. The Data::Verifier::Results class will be returned.
ACKNOWLEDGEMENTS
Justin Hunter
Jay Shirley
Brian Cassidy
AUTHOR
Cory G Watson <gphat@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Cory G Watson.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.