redis-semaphore 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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
-