redis-semaphore 0.2.1 → 0.2.2
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 +15 -0
- data/README.md +6 -0
- data/lib/redis/semaphore.rb +2 -2
- data/spec/semaphore_spec.rb +13 -0
- metadata +6 -9
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OWYwZTRjNTdiNmMzYzM5MzIwNjQzNzViYTBiOWEyNTY5MmQ1MDRkYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjhkM2JiMDE2ZDQ5YmYzNmY3NmE0ZjViOTcxYjVjMDgxM2RmMjY3NQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjZlNWQzMzJiYmY4ZTM2NDdmNGNmZTY5OGM0MmU3NzQxYzkyY2UzMmQ0Y2Rj
|
10
|
+
YjUzOGZhY2Q2ODA3ZGM5YzY0NTlhNTA4OGE3ZDlkODU1NDlmZGVkMWM5Mjg1
|
11
|
+
MDgxZDE3NjNhNTllOGU3MTYxNTU0YjQyNWM2MjJmNDQ3MmQxYTY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDQ4YTljMDAzNjRiZTI1YjI4ZjRlZDI4YmNjNzNjYjdlM2RlZWY1ZWRhOTQ2
|
14
|
+
ZTUyMzIyNzhlYTJmMTU0NjQ0NjYyMGU4OGYwMzk2MDkxNmVlNWIyMTBlYmZj
|
15
|
+
NjVjZGQ0NGI2ZmJlYTU0OWEzY2NkNWNlMDRjMGNhZTQ2MzJkYzk=
|
data/README.md
CHANGED
@@ -189,6 +189,10 @@ Testing
|
|
189
189
|
Changelog
|
190
190
|
---------
|
191
191
|
|
192
|
+
###0.2.2 June 16, 2014
|
193
|
+
- Fixed bug in `all_tokens` (thanks presskey!).
|
194
|
+
- Fixed bug in error message (thanks Dmitriy!).
|
195
|
+
|
192
196
|
###0.2.1 August 6, 2013
|
193
197
|
- Remove dependency on Redis 2.6+ using fallback for TIME command (thanks dubdromic!).
|
194
198
|
- Add ```:use_local_time``` option
|
@@ -237,3 +241,5 @@ Thanks to these awesome peeps for their contributions:
|
|
237
241
|
- [Ruurd Pels](https://github.com/ruurd)
|
238
242
|
- [Prathan Thananart](https://github.com/scomma)
|
239
243
|
- [dubdromic](https://github.com/dubdromic)
|
244
|
+
- [Dmitriy Kiriyenko](https://github.com/dmitriy-kiriyenko)
|
245
|
+
- [presskey](https://github.com/presskey)
|
data/lib/redis/semaphore.rb
CHANGED
@@ -28,7 +28,7 @@ class Redis
|
|
28
28
|
if token.nil?
|
29
29
|
create!
|
30
30
|
elsif token != API_VERSION
|
31
|
-
raise "Semaphore exists but running as wrong version (version #{
|
31
|
+
raise "Semaphore exists but running as wrong version (version #{token} vs #{API_VERSION})."
|
32
32
|
else
|
33
33
|
true
|
34
34
|
end
|
@@ -100,7 +100,7 @@ class Redis
|
|
100
100
|
def all_tokens
|
101
101
|
@redis.multi do
|
102
102
|
@redis.lrange(available_key, 0, -1)
|
103
|
-
@redis.
|
103
|
+
@redis.hkeys(grabbed_key)
|
104
104
|
end.flatten
|
105
105
|
end
|
106
106
|
|
data/spec/semaphore_spec.rb
CHANGED
@@ -171,4 +171,17 @@ describe "redis" do
|
|
171
171
|
semaphore.send(:current_time).should == Time.now
|
172
172
|
end
|
173
173
|
end
|
174
|
+
|
175
|
+
describe "all_tokens" do
|
176
|
+
let(:semaphore) { Redis::Semaphore.new(:my_semaphore, :redis => @redis, :stale_client_timeout => 5) }
|
177
|
+
|
178
|
+
it "includes tokens from available and grabbed keys" do
|
179
|
+
semaphore.exists_or_create!
|
180
|
+
available_keys = semaphore.all_tokens
|
181
|
+
semaphore.lock(1)
|
182
|
+
grabbed_keys = semaphore.all_tokens
|
183
|
+
|
184
|
+
available_keys.should == grabbed_keys
|
185
|
+
end
|
186
|
+
end
|
174
187
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis-semaphore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- David Verhasselt
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: redis
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -44,26 +41,26 @@ files:
|
|
44
41
|
- spec/spec_helper.rb
|
45
42
|
homepage: http://github.com/dv/redis-semaphore
|
46
43
|
licenses: []
|
44
|
+
metadata: {}
|
47
45
|
post_install_message:
|
48
46
|
rdoc_options: []
|
49
47
|
require_paths:
|
50
48
|
- lib
|
51
49
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
50
|
requirements:
|
54
51
|
- - ! '>='
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: '0'
|
57
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
55
|
requirements:
|
60
56
|
- - ! '>='
|
61
57
|
- !ruby/object:Gem::Version
|
62
58
|
version: '0'
|
63
59
|
requirements: []
|
64
60
|
rubyforge_project:
|
65
|
-
rubygems_version: 1.
|
61
|
+
rubygems_version: 2.1.10
|
66
62
|
signing_key:
|
67
|
-
specification_version:
|
63
|
+
specification_version: 4
|
68
64
|
summary: Implements a distributed semaphore or mutex using Redis.
|
69
65
|
test_files: []
|
66
|
+
has_rdoc:
|