pause 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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