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 +4 -4
- data/lib/pause/redis/adapter.rb +6 -1
- data/lib/pause/version.rb +1 -1
- data/spec/pause/redis/adapter_spec.rb +22 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c71d4ddaa7df30afce53ce0c5f9cb355326d8f8
|
4
|
+
data.tar.gz: 6ab9fbd9854b7d970bffc0e6436ca788f7303ac5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6960d06f4e402f5f45c8f4c731db11783bce91aa0ba1e3910a41b5ef2a5c75d5365645b32d7a712c0607dfc41c943db489db9ef89f5932a8ceebefd1addaefc3
|
7
|
+
data.tar.gz: 7a6b55e41e5cab30e2d586a190ca7cb12c7a4de691aba0c5698693418d427c9793b33d92d3d70125fdd71d5b6b9dbc92dc7a1bdd517f74e6178386d600983556
|
data/lib/pause/redis/adapter.rb
CHANGED
@@ -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.
|
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)
|
data/lib/pause/version.rb
CHANGED
@@ -137,17 +137,31 @@ describe Pause::Redis::Adapter do
|
|
137
137
|
end
|
138
138
|
|
139
139
|
describe '#delete_rate_limited_keys' do
|
140
|
-
|
141
|
-
|
142
|
-
|
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
|
-
|
145
|
-
|
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
|
-
|
149
|
+
it 'calls redis del with all keys' do
|
150
|
+
adapter.delete_rate_limited_keys('boom')
|
148
151
|
|
149
|
-
|
150
|
-
|
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
|
|