summary refs log tree commit diff
path: root/lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm')
-rw-r--r--lib/Plack/Middleware/APIRateLimit/Backend/Hash.pm21
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;