summaryrefslogtreecommitdiff
path: root/lib/AnyEvent
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-12-14 11:50:44 +0100
committerfranck cuny <franck@lumberjaph.net>2009-12-14 11:50:44 +0100
commit199ebd27ee9bb66ed318ba9870b31f5ccf50887b (patch)
tree71dc5a23cd70ceef70ccd0c8f8ad1d59c07cc6d3 /lib/AnyEvent
parentw r and dw can be set (diff)
downloadanyevent-riak-199ebd27ee9bb66ed318ba9870b31f5ccf50887b.tar.gz
add walk method
Diffstat (limited to '')
-rw-r--r--lib/AnyEvent/Riak.pm27
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/AnyEvent/Riak.pm b/lib/AnyEvent/Riak.pm
index 9292d4b..0f9d66e 100644
--- a/lib/AnyEvent/Riak.pm
+++ b/lib/AnyEvent/Riak.pm
@@ -53,7 +53,7 @@ sub fetch {
my ( $self, $bucket, $key, $r ) = @_;
$r = $self->{r} || 2 if !$r;
return $self->_request( 'GET',
- $self->_build_uri( [ $bucket, $key ], { r => $r} ), '200' );
+ $self->_build_uri( [ $bucket, $key ], { r => $r } ), '200' );
}
sub store {
@@ -88,6 +88,25 @@ sub delete {
$self->_build_uri( [ $bucket, $key ], { dw => $rw } ), 204 );
}
+sub walk {
+ my ( $self, $bucket, $key, $spec ) = @_;
+ my $path = $self->_build_uri( [ $bucket, $key ] );
+ $path .= $self->_build_spec($spec);
+ return $self->_request( 'GET', $path, 200 );
+}
+
+sub _build_spec {
+ my ( $self, $spec ) = @_;
+ my $acc = '/';
+ foreach my $item (@$spec) {
+ $acc
+ .= ( $item->{bucket} || '_' ) . ','
+ . ( $item->{tag} || '_' ) . ','
+ . ( $item->{acc} || '_' ) . '/';
+ }
+ return $acc;
+}
+
sub _build_uri {
my ( $self, $path, $query ) = @_;
my $uri = URI->new( $self->{host} );
@@ -155,6 +174,12 @@ AnyEvent::Riak - Non-blocking Riak client
AnyEvent::Riak is a non-blocking riak client using anyevent.
+=head2 METHODS
+
+=over 4
+
+=back
+
=head1 AUTHOR
franck cuny E<lt>franck@lumberjaph.netE<gt>