blessing 1.0.0 → 1.0.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "blessing"
8
- s.version = "1.0.0"
8
+ s.version = "1.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Laas Toom"]
12
- s.date = "2011-10-18"
12
+ s.date = "2011-11-04"
13
13
  s.description = "A group of Unicorns is called a blessing. Blessing gem provides an easy way to manage multiple Unicorn! Rack servers."
14
14
  s.email = "laas.toom@gmail.com"
15
15
  s.executables = ["blessing"]
@@ -92,10 +92,11 @@ module Blessing
92
92
 
93
93
  # See if this Unicorn is alread dead
94
94
  if dead?
95
- logger.warn "This Unicorn is dead: PID=#{pid}, conf=#{@config_file.inspect}"
96
95
  unless resurrect
96
+ logger.warn "Won't touch dead unicorn: PID=#{pid}, conf=#{@config_file.inspect}"
97
97
  return
98
98
  else
99
+ logger.warn "This unicorn is dead: PID=#{pid}, conf=#{@config_file.inspect}"
99
100
  logger.warn "Resurrecting..."
100
101
  end
101
102
  end
@@ -109,11 +110,13 @@ module Blessing
109
110
  ensure_running
110
111
 
111
112
  # if it was dead and is now running, we are successful
112
- if dead? && running?
113
- logger.warn "Successfully resurrected (necromancy +1)!"
114
- @dead = false
115
- else
116
- logger.warn "Resurrection failed!"
113
+ if dead?
114
+ if running?
115
+ logger.warn "Successfully resurrected (necromancy +1)!"
116
+ @dead = false
117
+ else
118
+ logger.warn "Resurrection failed!"
119
+ end
117
120
  end
118
121
  end
119
122
 
@@ -129,8 +132,10 @@ module Blessing
129
132
 
130
133
  # Verify the Unicorn! process is running
131
134
  def running?
135
+ p = pid
136
+ return false if p.nil?
132
137
  begin
133
- Process.kill 0, pid
138
+ Process.kill 0, p
134
139
  true
135
140
  rescue Errno::ESRCH
136
141
  # just verifying; logging should be done elsewhere
@@ -55,13 +55,21 @@ describe Blessing::Runner do
55
55
  runner = Blessing::Runner.new(@conf)
56
56
 
57
57
  pid = 12345
58
- runner.should_receive(:pid).and_return(pid)
59
- Process.should_receive(:kill).with(0, pid).and_return(true)
58
+ runner.should_receive(:pid).ordered.and_return(pid)
59
+ Process.should_receive(:kill).ordered.with(0, pid).and_return(true)
60
60
  runner.running?.should be_true
61
61
 
62
62
  pid = 22345
63
- runner.should_receive(:pid).and_return(pid)
64
- Process.should_receive(:kill).with(0, pid) { raise Errno::ESRCH, "TestException" }
63
+ runner.should_receive(:pid).ordered.and_return(pid)
64
+ Process.should_receive(:kill).ordered.with(0, pid) { raise Errno::ESRCH, "TestException" }
65
+ runner.running?.should_not be_true
66
+ end
67
+
68
+ it "assumes not running when PID is missing" do
69
+ runner = Blessing::Runner.new(@conf)
70
+
71
+ runner.should_receive(:pid).and_return(nil)
72
+ Process.should_not_receive(:kill)
65
73
  runner.running?.should_not be_true
66
74
  end
67
75
 
@@ -2,12 +2,20 @@
2
2
  RSpec::Matchers.define :contain_a_pid_number do
3
3
  match do |actual|
4
4
  if File.exists? actual
5
- pid = File.read(actual).chomp
6
- pid.to_i.to_s == pid.chomp
5
+ @pid = File.read(actual).chomp
6
+ @pid.to_i.to_s == @pid.chomp
7
7
  else
8
8
  false
9
9
  end
10
10
  end
11
+
12
+ failure_message_for_should do |actual|
13
+ "File #{actual} expected to contain PID number instead of: #{@pid.inspect}"
14
+ end
15
+
16
+ failure_message_for_should_not do |actual|
17
+ "File #{actual} expected not to contain PID number: #{@pid.inspect}"
18
+ end
11
19
  end
12
20
 
13
21
  # Check that the pid is still running
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blessing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-18 00:00:00.000000000 Z
12
+ date: 2011-11-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: unicorn
16
- requirement: &2177673060 !ruby/object:Gem::Requirement
16
+ requirement: &2158816680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2177673060
24
+ version_requirements: *2158816680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: daemons
27
- requirement: &2177671740 !ruby/object:Gem::Requirement
27
+ requirement: &2158814700 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2177671740
35
+ version_requirements: *2158814700
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2177669440 !ruby/object:Gem::Requirement
38
+ requirement: &2158791100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.3.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2177669440
46
+ version_requirements: *2158791100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &2177668660 !ruby/object:Gem::Requirement
49
+ requirement: &2158788900 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2177668660
57
+ version_requirements: *2158788900
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &2177667980 !ruby/object:Gem::Requirement
60
+ requirement: &2158786800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2177667980
68
+ version_requirements: *2158786800
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &2177667100 !ruby/object:Gem::Requirement
71
+ requirement: &2158785080 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2177667100
79
+ version_requirements: *2158785080
80
80
  description: A group of Unicorns is called a blessing. Blessing gem provides an easy
81
81
  way to manage multiple Unicorn! Rack servers.
82
82
  email: laas.toom@gmail.com
@@ -119,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  segments:
121
121
  - 0
122
- hash: -3814883158345661566
122
+ hash: -2309482515618915654
123
123
  required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  none: false
125
125
  requirements: