redis-semaphore 0.1.1 → 0.1.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.
Files changed (3) hide show
  1. data/README.md +11 -0
  2. data/lib/redis/semaphore.rb +3 -1
  3. metadata +36 -51
data/README.md CHANGED
@@ -70,6 +70,17 @@ s = Redis::Semaphore.new(:another_name, r)
70
70
  #...
71
71
  ```
72
72
 
73
+ If an exception happens during a lock, the lock will automatically be released:
74
+
75
+ ```ruby
76
+ begin
77
+ s.lock do
78
+ raise Exception
79
+ end
80
+ rescue
81
+ s.locked? # false
82
+ end
83
+ ```
73
84
 
74
85
 
75
86
  Installation
@@ -15,7 +15,9 @@ class Redis
15
15
  @locked = false
16
16
  @name = args.shift.to_s
17
17
  @redis = args.pop
18
- @redis = Redis.new(@redis) unless @redis.kind_of? Redis
18
+ if !(@redis.is_a?(Redis) || (defined?(Redis::Namespace) && @redis.is_a?(Redis::Namespace)))
19
+ @redis = Redis.new(@redis)
20
+ end
19
21
  @resources = args.pop || 1
20
22
 
21
23
  end
metadata CHANGED
@@ -1,84 +1,69 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: redis-semaphore
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - David Verhasselt
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-09-18 00:00:00 +02:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-06-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: redis
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :runtime
32
- version_requirements: *id001
33
- description: |
34
- Implements a distributed semaphore or mutex using Redis.
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: ! 'Implements a distributed semaphore or mutex using Redis.
35
31
 
32
+ '
36
33
  email: david@crowdway.com
37
34
  executables: []
38
-
39
35
  extensions: []
40
-
41
36
  extra_rdoc_files: []
42
-
43
- files:
37
+ files:
44
38
  - README.md
45
39
  - Rakefile
46
40
  - LICENSE
47
41
  - lib/redis/semaphore.rb
48
42
  - lib/redis-semaphore.rb
49
- - spec/spec_helper.rb
50
43
  - spec/redis_spec.rb
51
- has_rdoc: true
44
+ - spec/spec_helper.rb
52
45
  homepage: http://github.com/dv/redis-semaphore
53
46
  licenses: []
54
-
55
47
  post_install_message:
56
48
  rdoc_options: []
57
-
58
- require_paths:
49
+ require_paths:
59
50
  - lib
60
- required_ruby_version: !ruby/object:Gem::Requirement
51
+ required_ruby_version: !ruby/object:Gem::Requirement
61
52
  none: false
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- segments:
66
- - 0
67
- version: "0"
68
- required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
58
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- segments:
74
- - 0
75
- version: "0"
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
76
63
  requirements: []
77
-
78
64
  rubyforge_project:
79
- rubygems_version: 1.3.7
65
+ rubygems_version: 1.8.23
80
66
  signing_key:
81
67
  specification_version: 3
82
68
  summary: Implements a distributed semaphore or mutex using Redis.
83
69
  test_files: []
84
-