officer 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,6 +1,5 @@
1
1
  # Officer - Distributed Lock Server and Client
2
2
 
3
- This project is a work in progress and shouldn't be considered production ready at this time.
4
3
  It is implemented using Ruby and Eventmachine. Inspiration comes from [elock](http://github.com/dustin/elock).
5
4
 
6
5
  ## Installation
@@ -31,7 +30,7 @@ It is implemented using Ruby and Eventmachine. Inspiration comes from [elock](ht
31
30
 
32
31
  ### Unlock
33
32
 
34
- client.unlock 'some_lock_name
33
+ client.unlock 'some_lock_name'
35
34
 
36
35
  ### Wrap a block of code in a lock/unlock (with optional 5 second timeout)
37
36
 
@@ -47,6 +46,8 @@ It is implemented using Ruby and Eventmachine. Inspiration comes from [elock](ht
47
46
 
48
47
  client.reconnect
49
48
 
49
+ - Useful if you use Officer with Phusion Passenger and smart spawning. See [Passenger's documentation](http://www.modrails.com/documentation/Users%20guide%20Apache.html#_smart_spawning_gotcha_1_unintential_file_descriptor_sharing) for more information.
50
+
50
51
  ## Planned Features
51
52
 
52
53
  - Lock statistics.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.2
@@ -9,7 +9,6 @@ module Officer
9
9
 
10
10
  class GenericError < RuntimeError; end
11
11
  class AlreadyConnectedError < GenericError; end
12
- class NotConnectedError < GenericError; end
13
12
  class LockError < GenericError; end
14
13
  class LockTimeoutError < LockError; end
15
14
  class UnlockError < GenericError; end
@@ -68,8 +67,6 @@ module Officer
68
67
  end
69
68
 
70
69
  def disconnect
71
- raise NotConnectedError unless @socket
72
-
73
70
  @socket.close
74
71
  @socket = nil
75
72
  end
@@ -78,6 +75,8 @@ module Officer
78
75
  @socket.write command + "\n"
79
76
  result = @socket.gets "\n"
80
77
  JSON.parse result.chomp
78
+ rescue
79
+ reconnect and raise
81
80
  end
82
81
  end
83
82
 
@@ -39,7 +39,6 @@ module Officer
39
39
 
40
40
  L.info "Acquire Rate: #{@acquire_counter.to_f / 5}/s"
41
41
  @acquire_counter = 0
42
- L.info ''
43
42
 
44
43
  L.info '-----'
45
44
  end
data/officer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{officer}
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chad Remesch"]
12
- s.date = %q{2010-02-07}
12
+ s.date = %q{2010-02-10}
13
13
  s.default_executable = %q{officer}
14
14
  s.description = %q{Distributed lock server and client written in Ruby and EventMachine}
15
15
  s.email = %q{chad@remesch.com}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: officer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Remesch
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-07 00:00:00 -05:00
12
+ date: 2010-02-10 00:00:00 -05:00
13
13
  default_executable: officer
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency