diff options
Diffstat (limited to 'lib/Plack/Middleware/Throttle/Limiter.pm')
-rw-r--r-- | lib/Plack/Middleware/Throttle/Limiter.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Plack/Middleware/Throttle/Limiter.pm b/lib/Plack/Middleware/Throttle/Limiter.pm new file mode 100644 index 0000000..626732d --- /dev/null +++ b/lib/Plack/Middleware/Throttle/Limiter.pm @@ -0,0 +1,21 @@ +package Plack::Middleware::Throttle::Limiter; + +use Moose; +extends 'Plack::Middleware::Throttle'; + +sub request_done { + my ( $self, $env ) = @_; + my $key = $self->cache_key($env); + + $self->backend->incr($key); + + my $request_done = $self->backend->get($key); + + if ( !$request_done ) { + $self->backend->set( $key, 1 ); + } + + $request_done; +} + +1; |