guard-puma 0.2.0 → 0.2.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/CHANGES.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changes
2
2
 
3
+ ## 0.2.1
4
+
5
+ * Fix restarting & halting inside the runner.
6
+
3
7
  ## 0.2.0
4
8
 
5
9
  * Switched to puma's control server. pid file was too messy.
@@ -17,9 +17,10 @@ Gem::Specification.new do |gem|
17
17
  gem.add_dependency "rb-inotify"
18
18
  gem.add_dependency "libnotify"
19
19
  gem.add_dependency "puma"
20
+ gem.add_dependency "rest-client"
20
21
  gem.add_development_dependency "rake", "~> 0.9.2.2"
21
22
  gem.add_development_dependency "rspec", "~> 2.9.0"
22
23
  gem.add_development_dependency "guard-rspec", "~> 0.7.0"
23
24
  gem.add_development_dependency "bundler", "~> 1.1.0"
24
- gem.add_development_dependency "fakefs"
25
+ gem.add_development_dependency "pry"
25
26
  end
@@ -5,7 +5,7 @@ module Guard
5
5
 
6
6
  MAX_WAIT_COUNT = 20
7
7
 
8
- attr_reader :options, :control_url, :control_token
8
+ attr_reader :options, :control_url, :control_token, :cmd_opts
9
9
 
10
10
  def initialize(options)
11
11
  @control_token = (options.delete(:control_token) || 'pumarules')
@@ -13,9 +13,7 @@ module Guard
13
13
  @control_port = (options.delete(:control_port) || '9293')
14
14
  @control_url = "#{@control}:#{@control_port}"
15
15
  @options = options
16
- end
17
16
 
18
- def start
19
17
  puma_options = {
20
18
  '--port' => options[:port],
21
19
  '--control-token' => @control_token,
@@ -24,9 +22,11 @@ module Guard
24
22
  [:config, :bind, :threads].each do |opt|
25
23
  puma_options["--#{opt}"] = options[opt] if options[opt]
26
24
  end
27
- opts = puma_options.to_a.flatten << '-q'
25
+ @cmd_opts = (puma_options.to_a.flatten << '-q').join(' ')
26
+ end
28
27
 
29
- %{sh -c 'cd #{Dir.pwd} && puma #{opts.join(' ')} &'}
28
+ def start
29
+ system %{sh -c 'cd #{Dir.pwd} && puma #{cmd_opts} &'}
30
30
  end
31
31
 
32
32
  def halt
@@ -44,11 +44,15 @@ module Guard
44
44
  private
45
45
 
46
46
  def run_puma_command!(cmd)
47
- Net::HTTP.get((build_uri(cmd)))
47
+ Net::HTTP.get build_uri(cmd)
48
+ return true
49
+ rescue Errno::ECONNREFUSED => e
50
+ # server may not have been started correctly.
51
+ false
48
52
  end
49
53
 
50
54
  def build_uri(cmd)
51
- URI("http://#{control_url}/#{cmd}?token=#{control_token}")
55
+ URI "http://#{control_url}/#{cmd}?token=#{control_token}"
52
56
  end
53
57
 
54
58
  end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module PumaVersion
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -39,13 +39,14 @@ describe Guard::PumaRunner do
39
39
  end
40
40
 
41
41
  describe "#build_puma_command" do
42
- let(:command) { Guard::PumaRunner.new(options).start }
42
+ let(:runner) { Guard::PumaRunner.new(options) }
43
+ let(:command) { runner.start }
43
44
 
44
45
  context "with config" do
45
46
  let(:options) {{ :config => path }}
46
47
  let(:path) { "/tmp/elephants" }
47
48
  it "adds path to command" do
48
- command.should match("--config #{path}")
49
+ runner.cmd_opts.should match("--config #{path}")
49
50
  end
50
51
  end
51
52
 
@@ -53,15 +54,15 @@ describe Guard::PumaRunner do
53
54
  let(:options) {{ :bind => uri }}
54
55
  let(:uri) { "tcp://foo" }
55
56
  it "adds uri option to command" do
56
- command.should match("--bind #{uri}")
57
+ runner.cmd_opts.should match("--bind #{uri}")
57
58
  end
58
59
  end
59
60
 
60
61
  context "with control_token" do
61
62
  let(:options) {{ :control_token => token }}
62
- let(:token) { "IMMA_TOKEN" }
63
- it "adds path to command" do
64
- command.should match("--control-token #{token}")
63
+ let(:token) { "imma-token" }
64
+ it "adds token to command" do
65
+ runner.cmd_opts.should match(/--control-token #{token}/)
65
66
  end
66
67
  end
67
68
 
@@ -69,7 +70,7 @@ describe Guard::PumaRunner do
69
70
  let(:options) {{ :threads => threads }}
70
71
  let(:threads) { "13:42" }
71
72
  it "adds path to command" do
72
- command.should match("--threads #{threads}")
73
+ runner.cmd_opts.should match("--threads #{threads}")
73
74
  end
74
75
  end
75
76
  end
metadata CHANGED
@@ -1,115 +1,176 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-puma
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.2.1
4
5
  prerelease:
5
- version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jesse Cooke
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-25 00:00:00.000000000 Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- type: :runtime
16
- version_requirements: &6804 !ruby/object:Gem::Requirement
15
+ name: guard
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
19
  - - ! '>='
19
20
  - !ruby/object:Gem::Version
20
21
  version: 1.0.1
21
- none: false
22
+ type: :runtime
22
23
  prerelease: false
23
- name: guard
24
- requirement: *6804
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.1
25
30
  - !ruby/object:Gem::Dependency
26
- type: :runtime
27
- version_requirements: &6860 !ruby/object:Gem::Requirement
31
+ name: rb-inotify
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
28
34
  requirements:
29
35
  - - ! '>='
30
36
  - !ruby/object:Gem::Version
31
37
  version: '0'
32
- none: false
33
- prerelease: false
34
- name: rb-inotify
35
- requirement: *6860
36
- - !ruby/object:Gem::Dependency
37
38
  type: :runtime
38
- version_requirements: &6904 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
39
42
  requirements:
40
43
  - - ! '>='
41
44
  - !ruby/object:Gem::Version
42
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: libnotify
48
+ requirement: !ruby/object:Gem::Requirement
43
49
  none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
44
55
  prerelease: false
45
- name: libnotify
46
- requirement: *6904
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
63
+ name: puma
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
48
70
  type: :runtime
49
- version_requirements: &6948 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
50
74
  requirements:
51
75
  - - ! '>='
52
76
  - !ruby/object:Gem::Version
53
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rest-client
80
+ requirement: !ruby/object:Gem::Requirement
54
81
  none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
55
87
  prerelease: false
56
- name: puma
57
- requirement: *6948
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
58
94
  - !ruby/object:Gem::Dependency
59
- type: :development
60
- version_requirements: &6992 !ruby/object:Gem::Requirement
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
61
98
  requirements:
62
99
  - - ~>
63
100
  - !ruby/object:Gem::Version
64
101
  version: 0.9.2.2
65
- none: false
102
+ type: :development
66
103
  prerelease: false
67
- name: rake
68
- requirement: *6992
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.9.2.2
69
110
  - !ruby/object:Gem::Dependency
70
- type: :development
71
- version_requirements: &7036 !ruby/object:Gem::Requirement
111
+ name: rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
72
114
  requirements:
73
115
  - - ~>
74
116
  - !ruby/object:Gem::Version
75
117
  version: 2.9.0
76
- none: false
118
+ type: :development
77
119
  prerelease: false
78
- name: rspec
79
- requirement: *7036
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 2.9.0
80
126
  - !ruby/object:Gem::Dependency
81
- type: :development
82
- version_requirements: &7080 !ruby/object:Gem::Requirement
127
+ name: guard-rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
83
130
  requirements:
84
131
  - - ~>
85
132
  - !ruby/object:Gem::Version
86
133
  version: 0.7.0
87
- none: false
134
+ type: :development
88
135
  prerelease: false
89
- name: guard-rspec
90
- requirement: *7080
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.7.0
91
142
  - !ruby/object:Gem::Dependency
92
- type: :development
93
- version_requirements: &7124 !ruby/object:Gem::Requirement
143
+ name: bundler
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
94
146
  requirements:
95
147
  - - ~>
96
148
  - !ruby/object:Gem::Version
97
149
  version: 1.1.0
98
- none: false
150
+ type: :development
99
151
  prerelease: false
100
- name: bundler
101
- requirement: *7124
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 1.1.0
102
158
  - !ruby/object:Gem::Dependency
103
- type: :development
104
- version_requirements: &7168 !ruby/object:Gem::Requirement
159
+ name: pry
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
105
162
  requirements:
106
163
  - - ! '>='
107
164
  - !ruby/object:Gem::Version
108
165
  version: '0'
109
- none: false
166
+ type: :development
110
167
  prerelease: false
111
- name: fakefs
112
- requirement: *7168
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
113
174
  description:
114
175
  email:
115
176
  - jesse@jc00ke.com
@@ -140,20 +201,20 @@ rdoc_options: []
140
201
  require_paths:
141
202
  - lib
142
203
  required_ruby_version: !ruby/object:Gem::Requirement
204
+ none: false
143
205
  requirements:
144
206
  - - ! '>='
145
207
  - !ruby/object:Gem::Version
146
208
  version: '0'
147
- none: false
148
209
  required_rubygems_version: !ruby/object:Gem::Requirement
210
+ none: false
149
211
  requirements:
150
212
  - - ! '>='
151
213
  - !ruby/object:Gem::Version
152
214
  version: '0'
153
- none: false
154
215
  requirements: []
155
216
  rubyforge_project:
156
- rubygems_version: 1.8.12
217
+ rubygems_version: 1.8.19
157
218
  signing_key:
158
219
  specification_version: 3
159
220
  summary: Restart puma when files change