diff options
Diffstat (limited to '')
-rw-r--r-- | lib/AnyEvent/Riak/Role/CVCB.pm | 24 | ||||
-rw-r--r-- | lib/AnyEvent/Riak/Role/Client.pm | 12 | ||||
-rw-r--r-- | lib/AnyEvent/Riak/Role/HTTPUtils.pm | 16 |
3 files changed, 20 insertions, 32 deletions
diff --git a/lib/AnyEvent/Riak/Role/CVCB.pm b/lib/AnyEvent/Riak/Role/CVCB.pm index 74684c2..73812c2 100644 --- a/lib/AnyEvent/Riak/Role/CVCB.pm +++ b/lib/AnyEvent/Riak/Role/CVCB.pm @@ -1,27 +1,19 @@ package AnyEvent::Riak::Role::CVCB; -use Moose::Role; +# ABSTRACT: return a default condvar and callback if none defined -sub default_cb { - my ($self, $options) = @_; - return sub { - my $res = shift; - return $res; - }; -} +use Moose::Role; -sub cvcb { +sub _cvcb { my ($self, $options) = @_; - my ($cv, $cb); - $cv = AE::cv; - if ($options->{callback}) { - $cb = delete $options->{callback}; - } - else { - $cb = $self->default_cb(); + my ($cv, $cb) = (AnyEvent->condvar, sub { return @_ }); + if ($options && @$options) { + $cv = pop @$options if UNIVERSAL::isa($options->[-1], 'AnyEvent::CondVar'); + $cb = pop @$options if ref $options->[-1] eq 'CODE'; } ($cv, $cb); } 1; + diff --git a/lib/AnyEvent/Riak/Role/Client.pm b/lib/AnyEvent/Riak/Role/Client.pm deleted file mode 100644 index 0623e71..0000000 --- a/lib/AnyEvent/Riak/Role/Client.pm +++ /dev/null @@ -1,12 +0,0 @@ -package AnyEvent::Riak::Role::Client; - -use Moose::Role; - -has _client => ( - is => 'rw', - isa => 'AnyEvent::Riak', - required => 1, - handles => {host => 'host', client_id => 'client_id'} -); - -1; diff --git a/lib/AnyEvent/Riak/Role/HTTPUtils.pm b/lib/AnyEvent/Riak/Role/HTTPUtils.pm index 399f369..701af5d 100644 --- a/lib/AnyEvent/Riak/Role/HTTPUtils.pm +++ b/lib/AnyEvent/Riak/Role/HTTPUtils.pm @@ -1,15 +1,23 @@ package AnyEvent::Riak::Role::HTTPUtils; +# ABSTRACT: HTTP methods + use Moose::Role; use AnyEvent; use AnyEvent::HTTP; use URI; - use MIME::Base64; +has client_id => (is => 'rw', isa => 'Str', lazy_build => 1,); + +sub _build_client_id { + "perl_anyevent_riak" . encode_base64(int(rand(10737411824)), ''); +} + sub _build_uri { my ($self, $path, $options) = @_; + my $uri = URI->new($self->host); $uri->path(join("/", @$path)); $uri->query_form($self->_build_query($options)); @@ -17,8 +25,8 @@ sub _build_uri { } sub _build_headers { - my ($self, $options) = @_; - my $headers = delete $options->{headers} || {}; + my $self = shift; + my $headers = shift || {}; $headers->{'X-Riak-ClientId'} = $self->client_id; $headers->{'Content-Type'} = 'application/json' @@ -28,7 +36,7 @@ sub _build_headers { sub _build_query { my ($self, $options) = @_; - my $valid_options = [qw/props keys returnbody/]; + my $valid_options = [qw/props keys returnbody w r dw/]; my $query; foreach (@$valid_options) { $query->{$_} = $options->{$_} if exists $options->{$_}; |