From: Dobrica Pavlinusic Date: Sat, 21 Mar 2009 22:48:46 +0000 (+0000) Subject: decr X-Git-Tag: 0.0801~55 X-Git-Url: http://git.rot13.org/?p=perl-Redis.git;a=commitdiff_plain;h=233f624c856cc0828a100493ccc18f093e455412 decr git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@8 447b33ff-793d-4489-8442-9bea7d161be5 --- diff --git a/lib/Redis.pm b/lib/Redis.pm index 952b80b..d25a225 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -131,6 +131,25 @@ sub incr { return $count; } +=head2 decr + + $r->decr('counter'); + $r->decr('tripplets', 3); + +=cut + +sub decr { + my ( $self, $key, $value ) = @_; + if ( defined $value ) { + print $sock "DECRBY $key $value\r\n"; + } else { + print $sock "DECR $key\r\n"; + } + my $count = <$sock>; + warn "# $key = $count"; + return $count; +} + =head1 AUTHOR Dobrica Pavlinusic, C<< >> diff --git a/t/01-Redis.t b/t/01-Redis.t index 6d876f5..1e6092c 100755 --- a/t/01-Redis.t +++ b/t/01-Redis.t @@ -3,7 +3,7 @@ use warnings; use strict; -use Test::More tests => 28; +use Test::More tests => 37; use lib 'lib'; @@ -32,17 +32,22 @@ ok( $o->set('key-next' => 0), 'key-next = 0' ); my $key_next = 3; +ok( $o->set('key-left' => $key_next), 'key-left' ); + foreach ( 0 .. $key_next ) { ok( $o->set( "key-$_" => $_ ), "set key-$_" ); cmp_ok( $o->get( "key-$_" ), 'eq', $_, "get key-$_" ); cmp_ok( $o->incr( 'key-next' ), '==', $_ + 1, 'incr' ); + cmp_ok( $o->decr( 'key-left' ), '==', $key_next - $_ - 1, 'decr' ); } cmp_ok( $o->get( 'key-next' ), '==', $key_next + 1, 'key-next' ); ok( $o->set('test-incrby', 0), 'test-incrby' ); +ok( $o->set('test-decrby', 0), 'test-decry' ); foreach ( 1 .. 3 ) { cmp_ok( $o->incr('test-incrby', 3), '==', $_ * 3, 'incrby 3' ); + cmp_ok( $o->decr('test-decrby', 7), '==', -( $_ * 7 ), 'decrby 7' ); } ok( $o->quit, 'quit' );