Skip to content

Commit

Permalink
more API cleanup and POD
Browse files Browse the repository at this point in the history
  • Loading branch information
fcuny committed Apr 11, 2010
1 parent 253803c commit c9814bd
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 53 deletions.
92 changes: 53 additions & 39 deletions lib/AnyEvent/Riak.pm
Expand Up @@ -134,7 +134,7 @@ sub list_bucket {
}

sub set_bucket {
my ( $self, $bucket, %options ) = @_;
my ( $self, $bucket, $schema, %options ) = @_;
my ( $cv, $cb );

$cv = AE::cv;
Expand Down Expand Up @@ -166,19 +166,23 @@ sub set_bucket {
}

sub fetch {
my $self = shift;
my $bucket = shift;
my $key = shift;
my $r = shift;

$r = $self->{r} if !$r;
my ( $self, $bucket, $key, %options ) = @_;
my ( $cv, $cb );

my ( $cv, $cb ) = $self->_init_callback(@_);
$cb = $self->default_cb( { json => 1 } ) if !$cb;
$cv = AE::cv;
if ( $options{callback} ) {
$cb = delete $options{callback};
}
else {
$cb = $self->default_cb();
}

http_request(
GET => $self->_build_uri( [ $self->{path}, $bucket, $key ] ),
headers => $self->_build_headers(),
GET => $self->_build_uri(
[ $self->{path}, $bucket, $key ],
$options{parameters}
),
headers => $self->_build_headers( $options{parameters} ),
sub {
$cv->send( $cb->(@_) );
}
Expand All @@ -187,24 +191,25 @@ sub fetch {
}

sub store {
my $self = shift;
my $bucket = shift;
my $key = shift;
my $data = shift;
my $w = shift;
my $dw = shift;

$w = $self->{w} if !$w;
$dw = $self->{dw} if !$dw;
my ( $self, $bucket, $key, $object, %options ) = @_;
my ( $cv, $cb );

my ( $cv, $cb ) = $self->_init_callback(@_);
$cb = $self->default_cb( { json => 0 } ) if !$cb;
$cv = AE::cv;
if ( $options{callback} ) {
$cb = delete $options{callback};
}
else {
$cb = $self->default_cb();
}

my $json = JSON::encode_json($data);
my $json = JSON::encode_json($object);

http_request(
POST => $self->_build_uri( [ $self->{path}, $bucket, $key ] ),
headers => $self->_build_headers(),
POST => $self->_build_uri(
[ $self->{path}, $bucket, $key ],
$options{parameters}
),
headers => $self->_build_headers( $options{parameters} ),
body => $json,
sub {
$cv->send( $cb->(@_) );
Expand All @@ -214,18 +219,25 @@ sub store {
}

sub delete {
my $self = shift;
my $bucket = shift;
my $key = shift;
my ( $self, $bucket, $key, %options ) = @_;
my ( $cv, $cb );

my ($cv, $cb) = $self->_init_callback(@_);
$cb = $self->default_cb({json => 1}) if !$cb;
$cv = AE::cv;
if ( $options{callback} ) {
$cb = delete $options{callback};
}
else {
$cb = $self->default_cb();
}

http_request(
DELETE => $self->_build_uri([$self->{path}, $bucket, $key]),
headers => $self->_build_headers(),
DELETE => $self->_build_uri(
[ $self->{path}, $bucket, $key ],
$options{parameters}
),
headers => $self->_build_headers( $options{parameters} ),
sub {
$cv->send($cb->(@_));
$cv->send( $cb->(@_) );
}
);
$cv;
Expand Down Expand Up @@ -266,7 +278,7 @@ AnyEvent::Riak is a non-blocking riak client using C<AnyEvent>. This client allo
=over 4
=item B<is_alive>([callback => sub { }])
=item B<is_alive>([callback => sub { }, parameters => { }])
Check if the Riak server is alive. If the ping is successful, 1 is returned,
else 0.
Expand Down Expand Up @@ -305,7 +317,7 @@ describing the bucket is returned.
}
);
=item B<set_bucket>($bucketname, [parameters => { }, callback => { }])
=item B<set_bucket>($bucketname, $bucketschema, [parameters => { }, callback => sub { }])
Sets bucket properties like n_val and allow_mult.
Expand All @@ -325,11 +337,13 @@ If successful, B<1> is returned, else B<0>.
my $result = $riak->set_bucket('bucket')->recv;
=item B<fetch>
=item B<fetch>($bucketname, $object, [parameters => { }, callback => sub { }])
Reads an object from a bucket.
=item B<store>
=item B<store>($bucketname, $objectname, $objectdata, [parameters => { }, callback => sub { }]);
=item B<delete>
=item B<delete>($bucketname, $objectname, [parameters => { }, callback => sub { }]);
=back
Expand All @@ -341,7 +355,7 @@ franck cuny E<lt>franck@lumberjaph.netE<gt>
=head1 LICENSE
Copyright 2009 by linkfluence.
Copyright 2009, 2010 by linkfluence.
L<http://linkfluence.net>
Expand Down
29 changes: 15 additions & 14 deletions t/basic.t
Expand Up @@ -25,11 +25,12 @@ ok my $riak = AnyEvent::Riak->new( host => $host, path => $path, w => 1,

# ping
ok my $ping_one = $riak->is_alive(
sub {
my $res = shift;
callback => sub {
my $res = shift;
pass "is alive in cb" if $res;
}
), 'ping with callback';
),
'ping with callback';

ok my $ping_two = $riak->is_alive()->recv, 'ping without callback';

Expand All @@ -39,30 +40,30 @@ is $s, 1, 'valid response from ping';
# list bucket
ok my $bucket_cb = $riak->list_bucket(
'bar',
{ props => 'true', keys => 'true' },
sub {
parameters => { props => 'true', keys => 'true' },
callback => sub {
my $res = shift;
ok $res->{props};
is scalar @{ $res->{keys} }, 0, '0 keys in cb';
}
),
'fetch bucket list';

ok my $buckets = $riak->list_bucket('bar')->recv, "fetch bucket list";
ok my $buckets = $riak->list_bucket('bar')->recv, "fetch bucket list, twice";
is scalar @{ $buckets->{keys} }, '0', 'no keys';

ok my $res_bucket = $bucket_cb->recv, 'get bucket';

# # set bucket
# ok my $new_bucket
# = $riak->set_bucket( 'foo', { props => { n_val => 2 } } )->recv,
# 'set a new bucket';
# set bucket
ok my $new_bucket
= $riak->set_bucket( 'foo', { props => { n_val => 2 } } )->recv,
'set a new bucket';

# my $value = {
# foo => 'bar',
# };
my $value = {
foo => 'bar',
};

# ok my $res = $riak->store('foo', 'bar', $value)->recv, 'set a new key';
ok my $res = $riak->store('foo', 'bar', $value)->recv, 'set a new key';

# ok $res = $riak->fetch( 'foo', 'bar' )->recv, 'fetch our new key';
# is_deeply $res, $value, 'value is ok';
Expand Down

0 comments on commit c9814bd

Please sign in to comment.