summary refs log tree commit diff
path: root/lib/Plack/Middleware/APIRateLimit
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-03-30 15:36:02 +0200
committerfranck cuny <franck@lumberjaph.net>2010-03-30 15:36:02 +0200
commit397a9dc9fcfd3e61de12bcf6e7e39ca660155348 (patch)
treea397a4bfc708f156b7c13eec3762320f7e5b9993 /lib/Plack/Middleware/APIRateLimit
parentremove Moose, update call method, return remaining seconds instead of epoch t... (diff)
downloadplack-middleware-apiratelimit-397a9dc9fcfd3e61de12bcf6e7e39ca660155348.tar.gz
update POD, fix redis backend
Diffstat (limited to 'lib/Plack/Middleware/APIRateLimit')
-rw-r--r--lib/Plack/Middleware/APIRateLimit/Backend.pm4
-rw-r--r--lib/Plack/Middleware/APIRateLimit/Backend/Redis.pm31
2 files changed, 19 insertions, 16 deletions
diff --git a/lib/Plack/Middleware/APIRateLimit/Backend.pm b/lib/Plack/Middleware/APIRateLimit/Backend.pm
index 5628e86..c88d654 100644
--- a/lib/Plack/Middleware/APIRateLimit/Backend.pm
+++ b/lib/Plack/Middleware/APIRateLimit/Backend.pm
@@ -11,4 +11,8 @@ sub get {
     confess "Backend must implement a get method";
 }
 
+sub set {
+    confess "Backend must implement a set method";
+}
+
 1;
diff --git a/lib/Plack/Middleware/APIRateLimit/Backend/Redis.pm b/lib/Plack/Middleware/APIRateLimit/Backend/Redis.pm
index e647f6a..2bb6251 100644
--- a/lib/Plack/Middleware/APIRateLimit/Backend/Redis.pm
+++ b/lib/Plack/Middleware/APIRateLimit/Backend/Redis.pm
@@ -3,41 +3,40 @@ package Plack::Middleware::APIRateLimit::Backend::Redis;
 use Moose;
 extends 'Plack::Middleware::APIRateLimit::Backend';
 
-use AnyEvent::Redis;
+use Redis;
 
 has store => (
     is      => 'rw',
-    isa     => 'AnyEvent::Redis',
+    isa     => 'Redis',
     lazy    => 1,
     default => sub {
-        return AnyEvent::Redis->new(
-            host => '127.0.0.1',
-            port => 6378,
+        return Redis->new(
+            server => '127.0.0.1:6379'
         );
     }
 );
 
 sub BUILD {
-    my $self = shift;
-    if (scalar @_) {
-        $self->store(AnyEvent::Redis->new(@_));
+    my ( $self, $opt ) = @_;
+    if ($opt) {
+        $self->store( Redis->new(%$opt) );
     }
     return $self;
 }
 
 sub get {
     my ( $self, $key ) = @_;
-    my $val = $self->store->get($key)->recv;
-    if ( !$val ) {
-        $self->store->set( $key => 1 )->recv;
-        $val = 1;
-    }
-    return $val;
+    $self->store->get($key);
+}
+
+sub set {
+    my ($self, $key, $value) = @_;
+    $self->store->set($key, $value);
 }
 
 sub incr {
-    my ($self, $key) = @_;
-    return $self->store->incr($key)->recv;
+    my ( $self, $key ) = @_;
+    $self->store->incr($key);
 }
 
 1;