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 +4 -0
- data/guard-puma.gemspec +2 -1
- data/lib/guard/puma/runner.rb +11 -7
- data/lib/guard/puma/version.rb +1 -1
- data/spec/lib/guard/puma/runner_spec.rb +8 -7
- metadata +109 -48
data/CHANGES.md
CHANGED
data/guard-puma.gemspec
CHANGED
@@ -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 "
|
25
|
+
gem.add_development_dependency "pry"
|
25
26
|
end
|
data/lib/guard/puma/runner.rb
CHANGED
@@ -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
|
-
|
25
|
+
@cmd_opts = (puma_options.to_a.flatten << '-q').join(' ')
|
26
|
+
end
|
28
27
|
|
29
|
-
|
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
|
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
|
55
|
+
URI "http://#{control_url}/#{cmd}?token=#{control_token}"
|
52
56
|
end
|
53
57
|
|
54
58
|
end
|
data/lib/guard/puma/version.rb
CHANGED
@@ -39,13 +39,14 @@ describe Guard::PumaRunner do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "#build_puma_command" do
|
42
|
-
let(:
|
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
|
-
|
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
|
-
|
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) { "
|
63
|
-
it "adds
|
64
|
-
|
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
|
-
|
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-
|
12
|
+
date: 2012-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
16
|
-
|
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
|
-
|
22
|
+
type: :runtime
|
22
23
|
prerelease: false
|
23
|
-
|
24
|
-
|
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
|
-
|
27
|
-
|
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
|
-
|
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
|
-
|
46
|
-
|
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
|
-
|
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
|
-
|
57
|
-
|
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
|
-
|
60
|
-
|
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
|
-
|
102
|
+
type: :development
|
66
103
|
prerelease: false
|
67
|
-
|
68
|
-
|
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
|
-
|
71
|
-
|
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
|
-
|
118
|
+
type: :development
|
77
119
|
prerelease: false
|
78
|
-
|
79
|
-
|
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
|
-
|
82
|
-
|
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
|
-
|
134
|
+
type: :development
|
88
135
|
prerelease: false
|
89
|
-
|
90
|
-
|
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
|
-
|
93
|
-
|
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
|
-
|
150
|
+
type: :development
|
99
151
|
prerelease: false
|
100
|
-
|
101
|
-
|
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
|
-
|
104
|
-
|
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
|
-
|
166
|
+
type: :development
|
110
167
|
prerelease: false
|
111
|
-
|
112
|
-
|
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.
|
217
|
+
rubygems_version: 1.8.19
|
157
218
|
signing_key:
|
158
219
|
specification_version: 3
|
159
220
|
summary: Restart puma when files change
|