NAME
Data::Rx - perl implementation of Rx schema system
VERSION
version 0.005
SYNOPSIS
my $rx = Data::Rx->new;
my $success = {
type => '//rec',
required => {
location => '//str',
status => { type => '//int', value => 201 },
},
optional => {
comments => {
type => '//arr',
contents => '//str',
},
},
};
my $schema = $rx->make_schema($success);
my $reply = $json->decode( $agent->get($http_request) );
die "invalid reply" unless $schema->check($reply);
SEE ALSO
METHODS
new
my $rx = Data::Rx->new(\%arg);
This returns a new Data::Rx object.
Valid arguments are:
prefix - optional; a hashref of prefix pairs for type shorthand
type_plugins - optional; an arrayref of type or type bundle plugins
no_core_types - optional; if true, core type bundle is not loaded
The prefix hashref should look something like this:
{
'pobox' => 'tag:pobox.com,1995:rx/core/',
'skynet' => 'tag:skynet.mil,1997-08-29:types/rx/',
}
make_schema
my $schema = $rx->make_schema($schema);
This returns a new schema checker (something with a check
method) for the given Rx input.
register_type_plugin
$rx->register_type_plugin($plugin);
Given a type plugin, this registers the plugin with the Data::Rx object. Plugins must have a type_uri
method and a new_checker
method.
add_prefix
$rx->add_prefix($name => $prefix_string);
For example:
$rx->add_prefix('.meta' => 'tag:codesimply.com,2008:rx/meta/');
AUTHOR
Ricardo SIGNES <rjbs@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as perl itself.