From 2a68ed3d0138827f4fed8a3520f7859493da4e1b Mon Sep 17 00:00:00 2001 From: franck cuny Date: Wed, 31 Mar 2010 22:30:23 +0200 Subject: import old Plack::Middleware::APIRateLimit (renamed as miyagawa's suggestion) and stole API from rack::throttle --- lib/Plack/Middleware/Throttle/Limiter.pm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/Plack/Middleware/Throttle/Limiter.pm (limited to 'lib/Plack/Middleware/Throttle/Limiter.pm') 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; -- cgit v1.2.3