From 0530ee25184daf62214ddb3b281cb806aff7f9db Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 22 Mar 2009 13:37:49 +0000 Subject: [PATCH] lrem git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@26 447b33ff-793d-4489-8442-9bea7d161be5 --- lib/Redis.pm | 30 ++++++++++++++++++++++++++---- t/01-Redis.t | 5 ++++- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/lib/Redis.pm b/lib/Redis.pm index cb78dc9..31d7eb0 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -77,7 +77,7 @@ sub _sock_result_bulk { _sock_read_bulk(); } -sub _sock_ok { +sub __sock_ok { my $ok = <$sock>; confess dump($ok) unless $ok eq "+OK\r\n"; } @@ -93,16 +93,27 @@ sub _sock_send_ok { my $self = shift; warn "## _sock_send_ok ",dump( @_ ); print $sock join(' ',@_) . "\r\n"; - _sock_ok(); + __sock_ok(); } -sub _sock_send_bulk { +sub __sock_send_bulk_raw { my $self = shift; + warn "## _sock_send_bulk ",dump( @_ ); my $value = pop; print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n"; - _sock_ok(); } +sub _sock_send_bulk { + __sock_send_bulk_raw( @_ ); + __sock_ok(); +} + +sub _sock_send_bulk_number { + __sock_send_bulk_raw( @_ ); + my $v = _sock_result(); + confess $v unless $v =~ m{^\-?\d+$}; + return $v; +} =head1 Connection Handling @@ -349,6 +360,17 @@ sub lset { $self->_sock_send_bulk( 'LSET', $key, $index, $value ); } +=head2 lrem + + $r->lrem( $key, $count, $value ); + +=cut + +sub lrem { + my ( $self, $key, $count, $value ) = @_; + $self->_sock_send_bulk_number( 'LREM', $key, $count, $value ); +} + =head1 AUTHOR Dobrica Pavlinusic, C<< >> diff --git a/t/01-Redis.t b/t/01-Redis.t index d43655a..d478a7b 100755 --- a/t/01-Redis.t +++ b/t/01-Redis.t @@ -3,7 +3,7 @@ use warnings; use strict; -use Test::More tests => 67; +use Test::More tests => 69; use lib 'lib'; @@ -102,4 +102,7 @@ cmp_ok( $o->lindex( $list, 1 ), 'eq', 'r1', 'lindex' ); ok( $o->lset( $list, 0, 'foo' ), 'lset' ); cmp_ok( $o->lindex( $list, 0 ), 'eq', 'foo', 'verified' ); +ok( $o->lrem( $list, 1, 'foo' ), 'lrem' ); +cmp_ok( $o->llen( $list ), '==', 1, 'llen after lrem' ); + ok( $o->quit, 'quit' ); -- 2.20.1