actionlimiter 1.0.0.beta2 → 1.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a45ffa8e18273c24ca2f9407c0909fbc719fb88c49295676256940eecfe3a73f
4
- data.tar.gz: e0904db27c728ac00ce0774533a33bf154902682cc867a0a5ed8a313d8c04037
3
+ metadata.gz: 1fbed327377343485ea3ebb2a43e3ce29bc3d2826f6811eb7b3bba2103f0f027
4
+ data.tar.gz: c87c179c826f2b799659c25e1992f52de9710e138d55f265f02fcdee9df6cc42
5
5
  SHA512:
6
- metadata.gz: 99d0dc2ec88875dee1d954c146b0c1d2aefb9aa3bcce808e39dc0fb5dae936b176123a3e0ef78691744fd531c9fbc6c5303057738aba636718308cccee1c6527
7
- data.tar.gz: 642c0875a2112631fc652c869cef869b6953e36244c55d4d547c07269e250a57ac34767c6386ec42652384a1078dcde3c4cd66590576dac5acb54c84f4813b1d
6
+ metadata.gz: 8e0241fb370cb2e09816b59385577c8466670365071b744874b557376d83824f81861971ca813fa5e236dc276efe053e0e10019ced218dbc148e264511e5eb0e
7
+ data.tar.gz: 5ae2fb87768adad6eb01fee00d61f2299038e756ba90c4c9f05b45a04170ec15656f77822bda045d28fbf7422c86d3db444b3c9afca215d2e20b04c3e908a52f
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ActionLimiter
2
2
 
3
- [![Unit Test](https://github.com/angryboat/actionlimiter/actions/workflows/testing.yml/badge.svg)](https://github.com/angryboat/actionlimiter/actions/workflows/testing.yml) [![Linters](https://github.com/angryboat/actionlimiter/actions/workflows/linting.yml/badge.svg)](https://github.com/angryboat/actionlimiter/actions/workflows/linting.yml)
3
+ [![Ruby Gem](https://github.com/angryboat/actionlimiter/actions/workflows/ruby-gem.yml/badge.svg?event=push)](https://github.com/angryboat/actionlimiter/actions/workflows/ruby-gem.yml)
4
4
 
5
5
  Provides Redis backed rate limiting for Rails applications.
6
6
 
@@ -63,7 +63,7 @@ module ActionLimiter
63
63
  def _call(env)
64
64
  remote_ip = env.fetch('action_dispatch.remote_ip')
65
65
  bucket_key = Digest::MD5.hexdigest(remote_ip.to_s)
66
- bucket = @token_bucket.increment(bucket_key, Time.now)
66
+ bucket = @token_bucket.increment_and_return_bucket(bucket_key, Time.now)
67
67
 
68
68
  env['action_limiter.ip_bucket'] = bucket
69
69
 
@@ -13,6 +13,6 @@ local bucket_name = KEYS[1]
13
13
 
14
14
  redis.call('ZREMRANGEBYSCORE', bucket_name, '-inf', min)
15
15
  redis.call('ZADD', bucket_name, ts, ts)
16
- redis.call('EXPIRE', bucket_name, period * 5)
16
+ redis.call('EXPIRE', bucket_name, period + 2)
17
17
 
18
18
  return redis.call('ZCARD', bucket_name)
@@ -78,7 +78,7 @@ module ActionLimiter
78
78
  def increment_and_return_bucket(bucket, time)
79
79
  ActionLimiter.instrument('action_limiter.token_bucket.increment') do
80
80
  ActionLimiter.with_redis_connection do |connection|
81
- value = connection.evalsha(@script_hash, [bucket_key(bucket)], [period.to_s, time.to_f])
81
+ value = connection.evalsha(@script_hash, [bucket_key(bucket)], [period.to_s, time.to_f.to_s])
82
82
  Bucket.new(name: bucket, value: value, max_size: size, period: period)
83
83
  end
84
84
  end
@@ -3,5 +3,5 @@
3
3
  module ActionLimiter
4
4
  ##
5
5
  # The current version number
6
- VERSION = '1.0.0.beta2'
6
+ VERSION = '1.0.0.beta3'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionlimiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta2
4
+ version: 1.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maddie Schipper
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '5.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: pry
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
53
67
  description: 'Redis backed token bucket rate limting implementation.
54
68
 
55
69
  '