guard-puma 0.2.0 → 0.2.1

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