From f977241edf43e900d8776c16f80cbaf4858f2b91 Mon Sep 17 00:00:00 2001 From: Gavin Carr Date: Tue, 7 Sep 2010 20:56:47 +0100 Subject: add keys => 'stream' support to get_properties --- lib/Net/Riak/Bucket.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Net/Riak/Bucket.pm b/lib/Net/Riak/Bucket.pm index cd42316..9c246d5 100644 --- a/lib/Net/Riak/Bucket.pm +++ b/lib/Net/Riak/Bucket.pm @@ -89,7 +89,18 @@ sub get_properties { die "Error getting bucket properties: " . $response->status_line . "\n"; } - return JSON::decode_json($response->content); + if ($params->{keys} ne 'stream') { + return JSON::decode_json($response->content); + } + + # In streaming mode, aggregate keys from the multiple returned chunk objects + else { + my $json = JSON->new; + my $props = $json->incr_parse($response->content); + my @keys = map { $_->{keys} && ref $_->{keys} eq 'ARRAY' ? @{$_->{keys}} : () } + $json->incr_parse; + return { props => $props, keys => \@keys }; + } } sub set_properties { -- cgit 1.4.1