From 8f10dd2485e82199d7b7ef9dc69e3ac3fb7ebbff Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 21 Mar 2009 23:36:26 +0000 Subject: [PATCH] rename, renamenx git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@14 447b33ff-793d-4489-8442-9bea7d161be5 --- lib/Redis.pm | 22 +++++++++++++++++++--- t/01-Redis.t | 8 +++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/lib/Redis.pm b/lib/Redis.pm index 6c88fd5..2eabb7b 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -70,6 +70,11 @@ sub _sock_result_bulk { return $v; } +sub _sock_ok { + my $ok = <$sock>; + confess dump($ok) unless $ok eq "+OK\r\n"; +} + =head1 Connection Handling =head2 quit @@ -107,8 +112,7 @@ sub ping { sub set { my ( $self, $k, $v, $new ) = @_; print $sock ( $new ? "SETNX" : "SET" ) . " $k " . length($v) . "\r\n$v\r\n"; - my $ok = <$sock>; - confess dump($ok) unless $ok eq "+OK\r\n"; + _sock_ok(); } =head2 get @@ -216,11 +220,23 @@ sub keys { =cut sub randomkey { - my ( $self, $glob ) = @_; + my ( $self ) = @_; print $sock "RANDOMKEY\r\n"; _sock_result(); } +=head2 rename + + my $ok = $r->rename( 'old-key', 'new-key', $only_if_new ); + +=cut + +sub rename { + my ( $self, $old, $new, $nx ) = @_; + print $sock "RENAME" . ( $nx ? 'NX' : '' ) . " $old $new\r\n"; + _sock_ok(); +} + =head1 AUTHOR Dobrica Pavlinusic, C<< >> diff --git a/t/01-Redis.t b/t/01-Redis.t index a27ae37..cd92633 100755 --- a/t/01-Redis.t +++ b/t/01-Redis.t @@ -3,7 +3,7 @@ use warnings; use strict; -use Test::More tests => 49; +use Test::More tests => 52; use lib 'lib'; @@ -69,4 +69,10 @@ is_deeply( [ $o->keys('key-*') ], [ @keys ], 'keys' ); ok( my $key = $o->randomkey, 'randomkey' ); diag "key: $key"; +ok( $o->rename( $key, 'test-renamed' ), 'rename' ); +ok( $o->exists( 'test-renamed' ), 'exists test-renamed' ); + +eval { $o->rename( $o->randomkey, 'test-renamed', 1 ) }; +ok( $@, 'rename to existing key' ); + ok( $o->quit, 'quit' ); -- 2.20.1