lset, generalize _sock_send_bulk to any number of arguments
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 22 Mar 2009 13:18:11 +0000 (13:18 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 22 Mar 2009 13:18:11 +0000 (13:18 +0000)
git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@24 447b33ff-793d-4489-8442-9bea7d161be5

lib/Redis.pm
t/01-Redis.t

index 8fe98d6..cb78dc9 100644 (file)
@@ -97,8 +97,9 @@ sub _sock_send_ok {
 }
 
 sub _sock_send_bulk {
-       my ( $self, $command, $key, $value ) = @_;
-       print $sock "$command $key " . length($value) . "\r\n$value\r\n";
+       my $self = shift;
+       my $value = pop;
+       print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n";
        _sock_ok();
 }
 
@@ -334,9 +335,19 @@ sub ltrim {
 
 sub lindex {
        my ( $self, $key, $index ) = @_;
-       $self->_sock_result_bulk( 'lindex', $key, $index );
+       $self->_sock_result_bulk( 'LINDEX', $key, $index );
 }
 
+=head2 lset
+
+  $r->lset( $key, $index, $value );
+
+=cut
+
+sub lset {
+       my ( $self, $key, $index, $value ) = @_;
+       $self->_sock_send_bulk( 'LSET', $key, $index, $value );
+}
 
 =head1 AUTHOR
 
index d41bd3f..3e6e62b 100755 (executable)
@@ -3,7 +3,7 @@
 use warnings;
 use strict;
 
-use Test::More tests => 64;
+use Test::More tests => 66;
 
 use lib 'lib';
 
@@ -98,4 +98,7 @@ cmp_ok( $o->llen($list), '==', 2, 'llen after ltrim' );
 cmp_ok( $o->lindex( $list, 0 ), 'eq', 'l1', 'lindex' );
 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->quit, 'quit' );