redis-semaphore 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)
@@ -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 #{version} vs #{API_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.lrange(grabbed_key, 0, -1)
103
+ @redis.hkeys(grabbed_key)
104
104
  end.flatten
105
105
  end
106
106
 
@@ -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.1
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: 2013-08-06 00:00:00.000000000 Z
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.8.23
61
+ rubygems_version: 2.1.10
66
62
  signing_key:
67
- specification_version: 3
63
+ specification_version: 4
68
64
  summary: Implements a distributed semaphore or mutex using Redis.
69
65
  test_files: []
66
+ has_rdoc: