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

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.