NAME
Data::Partial::Google - Filter data structures for "partial responses," Google style
VERSION
version 0.00_01
SYNOPSIS
my $data = {
artist => "Alice In Chains",
title => "Sap",
year => 1992,
tracks => [
{ title => "Brother", length => "4:27" },
{ title => "Got Me Wrong", length => "4:12" },
{ title => "Right Turn", length => "3:17" },
{ title => "Am I Inside", length => "5:09" },
]
};
my $filter = Data::Filter::Google->new('artist,title,tracks/title');
my $filtered = $filter->mask($data);
cmp_deeply($data, {
artist => "Alice In Chains",
title => "Sap",
tracks => [
{ title => "Brother" },
{ title => "Got Me Wrong" },
{ title => "Right Turn" },
{ title => "Am I Inside" },
]
});
# ok 1
DESCRIPTION
This module filters data structures without changing their shape, making it easy to expose only the parts of interest to a consumer. It aims to be compatible with Google's implementation of partial responses using the fields parameter, and it is based on the node module "json-mask".
RULES
XXX write this
METHODS
mask
$filter->mask($data) returns $data, as modified by $filter's rules. In most senses the returned value will be a deep copy of $data, as hashes and arrays will have been reconstructed, but other values, such as code references and glob references, will be copied directly, so be cautious.
SEE ALSO
Google Partial Responses: https://developers.google.com/discovery/v1/performance#partial-response
json-mask: https://github.com/nemtsov/json-mask
AUTHOR
Andrew Rodland <arodland@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by Andrew Rodland.
This is free software, licensed under:
The MIT (X11) License
ADDITIONAL LICENSE
This module contains code and tests from json-mask, Copyright (c) 2013 Yuriy Nemtsov.
CREDIT
Development of this module is supported by Shutterstock.