summaryrefslogtreecommitdiff
path: root/lib/Plack/Middleware/Throttle/Backend
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Plack/Middleware/Throttle/Backend/Hash.pm20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/Plack/Middleware/Throttle/Backend/Hash.pm b/lib/Plack/Middleware/Throttle/Backend/Hash.pm
new file mode 100644
index 0000000..9144e36
--- /dev/null
+++ b/lib/Plack/Middleware/Throttle/Backend/Hash.pm
@@ -0,0 +1,20 @@
+package Plack::Middleware::Throttle::Backend::Hash;
+
+use Moose;
+
+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;