diff options
Diffstat (limited to 'lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm')
-rw-r--r-- | lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm b/lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm new file mode 100644 index 0000000..0e407d8 --- /dev/null +++ b/lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm @@ -0,0 +1,21 @@ +package Plack::Middleware::APIRateLimit::Backend::Hash; + +use Moose; +extends 'Plack::Middleware::APIRateLimit::Backend'; + +has store => ( + is => 'rw', + isa => 'HashRef', + traits => ['Hash'], + lazy => 1, + default => sub { {} }, + handles => { get => 'get', set => 'set' } +); + +sub incr { + my ( $self, $key ) = @_; + my $value = ($self->get($key) || 0) + 1; + $self->set( $key => $value ); +} + +1; |