summaryrefslogtreecommitdiff
path: root/lib/Net/Riak/Role/PBC/Bucket.pm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Net/Riak/Role/PBC/Bucket.pm46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/Net/Riak/Role/PBC/Bucket.pm b/lib/Net/Riak/Role/PBC/Bucket.pm
new file mode 100644
index 0000000..aa7d7fa
--- /dev/null
+++ b/lib/Net/Riak/Role/PBC/Bucket.pm
@@ -0,0 +1,46 @@
+package Net::Riak::Role::PBC::Bucket;
+
+use Moose::Role;
+use Data::Dumper;
+
+sub get_properties {
+ my ( $self, $name, $params ) = @_;
+ my $resp = $self->send_message( GetBucketReq => { bucket => $name } );
+ return { props => { %{ $resp->props } } };
+}
+
+sub set_properties {
+ my ( $self, $bucket, $props ) = @_;
+ return $self->send_message(
+ SetBucketReq => {
+ bucket => $bucket->name,
+ props => $props
+ }
+ );
+}
+
+sub get_keys {
+ my ( $self, $name, $params) = @_;
+ my $keys = [];
+
+ my $res = $self->send_message(
+ ListKeysReq => { bucket => $name, },
+ sub {
+ if ( defined $_[0]->keys ) {
+ if ($params->{cb}) {
+ $params->{cb}->($_) for @{ $_[0]->keys };
+ }
+ else {
+ push @$keys, @{ $_[0]->keys };
+ }
+ }
+ }
+ );
+
+ return $params->{cb} ? undef : $keys;
+}
+
+
+
+1;
+