pause 0.2.0 → 0.2.1

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
  SHA1:
3
- metadata.gz: bda062b9f3c87e7079efe48798f512afc22cfad8
4
- data.tar.gz: afcdfb3a35303d0a6dede0964e1d30c275553e50
3
+ metadata.gz: 6c71d4ddaa7df30afce53ce0c5f9cb355326d8f8
4
+ data.tar.gz: 6ab9fbd9854b7d970bffc0e6436ca788f7303ac5
5
5
  SHA512:
6
- metadata.gz: 8d195486f30a502ef7fee7c77bbd0471f3eeea1622d207d81d4719126e94d4c5d3c8016176c9ff2a40f51f8ba947fda712b629eba702cce8b5819bec6430364f
7
- data.tar.gz: c8af42cebe5703e60a2d484984f7ba1294d58ecdb9621911ebb02aca9ec66f2657cd0f3372f50c7d7cc8609e3ee92be91df778c2dcdde150760f80abec32833f
6
+ metadata.gz: 6960d06f4e402f5f45c8f4c731db11783bce91aa0ba1e3910a41b5ef2a5c75d5365645b32d7a712c0607dfc41c943db489db9ef89f5932a8ceebefd1addaefc3
7
+ data.tar.gz: 7a6b55e41e5cab30e2d586a190ca7cb12c7a4de691aba0c5698693418d427c9793b33d92d3d70125fdd71d5b6b9dbc92dc7a1bdd517f74e6178386d600983556
@@ -54,9 +54,14 @@ module Pause
54
54
 
55
55
  # For a scope, delete the entire sorted set that holds the block list.
56
56
  # Also delete the original tracking information, so we don't immediately re-block the id
57
+ #
58
+ # @return count [Integer] the number of items deleted
57
59
  def delete_rate_limited_keys(scope)
60
+ return 0 unless rate_limited_keys(scope).any?
58
61
  delete_tracking_keys(scope, rate_limited_keys(scope))
59
- redis.del rate_limited_list(scope)
62
+ redis.zremrangebyscore(rate_limited_list(scope), '-inf', '+inf').tap do |_count|
63
+ redis.del rate_limited_list(scope)
64
+ end
60
65
  end
61
66
 
62
67
  def delete_rate_limited_key(scope, id)
@@ -1,3 +1,3 @@
1
1
  module Pause
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -137,17 +137,31 @@ describe Pause::Redis::Adapter do
137
137
  end
138
138
 
139
139
  describe '#delete_rate_limited_keys' do
140
- it 'calls redis del with all keys' do
141
- adapter.rate_limit!('boom', '1', 10)
142
- adapter.rate_limit!('boom', '2', 10)
140
+ context 'with blocked items' do
141
+ before do
142
+ adapter.rate_limit!('boom', '1', 10)
143
+ adapter.rate_limit!('boom', '2', 10)
143
144
 
144
- expect(adapter.rate_limited?('boom', '1')).to be true
145
- expect(adapter.rate_limited?('boom', '2')).to be true
145
+ expect(adapter.rate_limited?('boom', '1')).to be true
146
+ expect(adapter.rate_limited?('boom', '2')).to be true
147
+ end
146
148
 
147
- adapter.delete_rate_limited_keys('boom')
149
+ it 'calls redis del with all keys' do
150
+ adapter.delete_rate_limited_keys('boom')
148
151
 
149
- expect(adapter.rate_limited?('boom', '1')).to be false
150
- expect(adapter.rate_limited?('boom', '2')).to be false
152
+ expect(adapter.rate_limited?('boom', '1')).to be false
153
+ expect(adapter.rate_limited?('boom', '2')).to be false
154
+ end
155
+
156
+ it 'returns the number of unblocked items' do
157
+ expect(adapter.delete_rate_limited_keys('boom')).to eq(2)
158
+ end
159
+ end
160
+
161
+ context 'with no blocked items' do
162
+ it 'returns 0' do
163
+ expect(adapter.delete_rate_limited_keys('boom')).to eq(0)
164
+ end
151
165
  end
152
166
  end
153
167
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pause
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atasay Gokkaya