guard-passenger 0.0.6 → 0.1.0
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/README.rdoc +7 -8
- data/lib/guard/passenger.rb +25 -4
- data/lib/guard/passenger/runner.rb +1 -8
- data/lib/guard/passenger/toucher.rb +23 -0
- data/lib/guard/passenger/version.rb +1 -1
- metadata +4 -3
data/README.rdoc
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
= Guard::Passenger
|
2
2
|
|
3
|
-
Passenger
|
4
|
-
This is particularly useful if you use passenger in development.
|
5
|
-
|
3
|
+
Guard::Passenger is the useful development server solution. The guard automatically starts passenger and intelligently restarts the server when needed.
|
6
4
|
|
7
5
|
== Install
|
8
6
|
|
@@ -26,7 +24,7 @@ Please read {guard usage doc}[http://github.com/guard/guard#readme]
|
|
26
24
|
|
27
25
|
== Guardfile
|
28
26
|
|
29
|
-
Passenger guard can be really be
|
27
|
+
Passenger guard can be really be adapted to all kind of rack project with passenger.
|
30
28
|
Please read {guard doc}[http://github.com/guard/guard#readme] for more info about Guardfile DSL.
|
31
29
|
|
32
30
|
=== Standard rails app
|
@@ -50,11 +48,12 @@ By default passenger standalone is deactivated and port is set to 3000.
|
|
50
48
|
|
51
49
|
Guard::Passenger accepts some options for configuration.
|
52
50
|
|
53
|
-
# :standalone boolean run passenger standalone
|
54
|
-
# :port integer using the given port
|
55
|
-
# :env string framework environment
|
51
|
+
# :standalone boolean run passenger standalone (default: true)
|
52
|
+
# :port integer using the given port (default: 3000)
|
53
|
+
# :env string framework environment (default: development)
|
54
|
+
# :touch string path to check if restart was successful (default: /) (false = off)
|
56
55
|
|
57
|
-
guard 'passenger', :standalone =>
|
56
|
+
guard 'passenger', :standalone => false, :port => 3001, :env => 'production', :touch => '/users/all' do
|
58
57
|
end
|
59
58
|
|
60
59
|
== Development
|
data/lib/guard/passenger.rb
CHANGED
@@ -6,8 +6,9 @@ module Guard
|
|
6
6
|
class Passenger < Guard
|
7
7
|
|
8
8
|
autoload :Runner, 'guard/passenger/runner'
|
9
|
+
autoload :Toucher, 'guard/passenger/toucher'
|
9
10
|
|
10
|
-
attr_reader :port, :env
|
11
|
+
attr_reader :port, :env, :touch
|
11
12
|
|
12
13
|
def standalone?
|
13
14
|
@standalone
|
@@ -19,9 +20,10 @@ module Guard
|
|
19
20
|
|
20
21
|
def initialize(watchers = [], options = {})
|
21
22
|
super
|
22
|
-
@standalone = options[:standalone].nil? ?
|
23
|
+
@standalone = options[:standalone].nil? ? true : options[:standalone]
|
23
24
|
@port = options[:port].nil? ? 3000 : options[:port]
|
24
25
|
@env = options[:env].nil? ? 'development' : options[:env]
|
26
|
+
@touch = options[:touch].nil? ? '/' : options[:touch]
|
25
27
|
end
|
26
28
|
|
27
29
|
# Call once when guard starts
|
@@ -45,7 +47,7 @@ module Guard
|
|
45
47
|
|
46
48
|
# Call with Ctrl-Z signal
|
47
49
|
def reload
|
48
|
-
|
50
|
+
restart_and_touch
|
49
51
|
end
|
50
52
|
|
51
53
|
# Call with Ctrl-/ signal
|
@@ -55,7 +57,26 @@ module Guard
|
|
55
57
|
|
56
58
|
# Call on file(s) modifications
|
57
59
|
def run_on_change(paths)
|
58
|
-
|
60
|
+
restart_and_touch
|
59
61
|
end
|
62
|
+
|
63
|
+
private
|
64
|
+
def restart_and_touch
|
65
|
+
if Runner.restart_passenger & touch_url
|
66
|
+
UI.info 'Successfully restarted passenger'
|
67
|
+
true
|
68
|
+
else
|
69
|
+
UI.error 'Restarting passenger failed'
|
70
|
+
false
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def touch_url
|
75
|
+
if touch
|
76
|
+
Toucher.touch('localhost', port, touch)
|
77
|
+
else
|
78
|
+
true
|
79
|
+
end
|
80
|
+
end
|
60
81
|
end
|
61
82
|
end
|
@@ -4,14 +4,7 @@ module Guard
|
|
4
4
|
class << self
|
5
5
|
|
6
6
|
def restart_passenger
|
7
|
-
|
8
|
-
if result
|
9
|
-
UI.info 'Successfully restarted passenger'
|
10
|
-
else
|
11
|
-
UI.error 'Restarting passenger failed'
|
12
|
-
end
|
13
|
-
|
14
|
-
result
|
7
|
+
system 'touch tmp/restart.txt'
|
15
8
|
end
|
16
9
|
|
17
10
|
def start_passenger(port, environment)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
|
3
|
+
module Guard
|
4
|
+
class Passenger
|
5
|
+
module Toucher
|
6
|
+
class << self
|
7
|
+
|
8
|
+
# try recieve header from given url (e.g. http://localhost:3000/) and return false if response status is 500
|
9
|
+
def touch(host, port, path)
|
10
|
+
begin
|
11
|
+
response = nil;
|
12
|
+
Net::HTTP.start(host, port) do |http|
|
13
|
+
response = http.head(path)
|
14
|
+
end
|
15
|
+
response['status'].to_i != 500
|
16
|
+
rescue
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-passenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.6
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Fabio Kuhn
|
@@ -62,6 +62,7 @@ extra_rdoc_files: []
|
|
62
62
|
files:
|
63
63
|
- lib/guard/passenger/runner.rb
|
64
64
|
- lib/guard/passenger/templates/Guardfile
|
65
|
+
- lib/guard/passenger/toucher.rb
|
65
66
|
- lib/guard/passenger/version.rb
|
66
67
|
- lib/guard/passenger.rb
|
67
68
|
- LICENSE
|