zeus 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/{LICENSE → MIT-LICENSE} +0 -0
- data/lib/zeus/client.rb +4 -2
- data/lib/zeus/server.rb +3 -5
- data/lib/zeus/server/forked_process.rb +16 -5
- data/lib/zeus/server/load_tracking.rb +7 -12
- data/lib/zeus/server/stage.rb +2 -0
- data/lib/zeus/version.rb +1 -1
- data/zeus.gemspec +2 -1
- metadata +6 -5
data/{LICENSE → MIT-LICENSE}
RENAMED
File without changes
|
data/lib/zeus/client.rb
CHANGED
@@ -50,8 +50,10 @@ module Zeus
|
|
50
50
|
|
51
51
|
pid = socket.readline.chomp.to_i
|
52
52
|
rescue Errno::ENOENT, Errno::ECONNREFUSED, Errno::ECONNRESET
|
53
|
-
|
54
|
-
|
53
|
+
# we need a \r at the end because the terminal is in raw mode.
|
54
|
+
# we need to reset the cursor to position 0
|
55
|
+
Zeus.ui.error "Zeus doesn't seem to be running, try 'zeus start`\r"
|
56
|
+
exit 1
|
55
57
|
end
|
56
58
|
|
57
59
|
def make_winch_channel
|
data/lib/zeus/server.rb
CHANGED
@@ -58,15 +58,13 @@ module Zeus
|
|
58
58
|
File.unlink(Zeus::SOCKET_NAME)
|
59
59
|
end
|
60
60
|
|
61
|
-
# this is used in conjunction with Zeus::LoadTracking to track files loaded
|
62
|
-
# using `load` rather than `require`.
|
63
61
|
def add_extra_feature(full_expanded_path)
|
64
|
-
|
65
|
-
|
62
|
+
$extra_loaded_features ||= []
|
63
|
+
$extra_loaded_features << full_expanded_path
|
66
64
|
end
|
67
65
|
|
68
66
|
def extra_features
|
69
|
-
|
67
|
+
$extra_loaded_features || []
|
70
68
|
end
|
71
69
|
|
72
70
|
# Child process API
|
@@ -47,11 +47,6 @@ module Zeus
|
|
47
47
|
|
48
48
|
defined?(ActiveRecord::Base) and ActiveRecord::Base.clear_all_connections!
|
49
49
|
|
50
|
-
new_features = newly_loaded_features()
|
51
|
-
$previously_loaded_features = new_features
|
52
|
-
Thread.new {
|
53
|
-
new_features.each { |f| notify_feature(f) }
|
54
|
-
}
|
55
50
|
end
|
56
51
|
|
57
52
|
def newly_loaded_features
|
@@ -74,6 +69,19 @@ module Zeus
|
|
74
69
|
def after_setup
|
75
70
|
end
|
76
71
|
|
72
|
+
def notify_new_features
|
73
|
+
new_features = newly_loaded_features()
|
74
|
+
$previously_loaded_features ||= []
|
75
|
+
$previously_loaded_features |= new_features
|
76
|
+
Thread.new {
|
77
|
+
new_features.each { |f| notify_feature(f) }
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
81
|
+
def after_notify
|
82
|
+
end
|
83
|
+
|
84
|
+
# TODO: This just got really ugly and needs a refactor more than ever.
|
77
85
|
def run(close_parent_sockets = false)
|
78
86
|
@pid = fork {
|
79
87
|
before_setup
|
@@ -82,6 +90,9 @@ module Zeus
|
|
82
90
|
Zeus.run_after_fork!
|
83
91
|
|
84
92
|
after_setup
|
93
|
+
notify_new_features
|
94
|
+
|
95
|
+
after_notify
|
85
96
|
runloop!
|
86
97
|
}
|
87
98
|
kill_pid_on_exit(@pid)
|
@@ -3,18 +3,13 @@ module Zeus
|
|
3
3
|
class LoadTracking
|
4
4
|
|
5
5
|
def self.inject!(server)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
if ret = super(file, *a)
|
14
|
-
LoadTracking.add_feature(server, file)
|
15
|
-
end
|
16
|
-
ret
|
17
|
-
}
|
6
|
+
$server = server
|
7
|
+
class << Kernel
|
8
|
+
alias_method :__original_load, :load
|
9
|
+
def load(file, *a)
|
10
|
+
LoadTracking.add_feature($server, file)
|
11
|
+
__original_load(file, *a)
|
12
|
+
end
|
18
13
|
end
|
19
14
|
end
|
20
15
|
|
data/lib/zeus/server/stage.rb
CHANGED
data/lib/zeus/version.rb
CHANGED
data/zeus.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.email = ["burke@libbey.me"]
|
7
7
|
gem.description = %q{Boot any rails app in under a second}
|
8
8
|
gem.summary = %q{Zeus is an intelligent preloader for ruby applications. It allows normal development tasks to be run in a fraction of a second.}
|
9
|
-
gem.homepage = "
|
9
|
+
gem.homepage = "https://github.com/burke/zeus"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split("\n").reject{ |f| f =~ /xcodeproj/ }
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -14,4 +14,5 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.name = "zeus"
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = Zeus::VERSION
|
17
|
+
gem.license = "MIT"
|
17
18
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zeus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-10 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Boot any rails app in under a second
|
15
15
|
email:
|
@@ -23,7 +23,7 @@ files:
|
|
23
23
|
- .travis.yml
|
24
24
|
- .zeus.rb
|
25
25
|
- Gemfile
|
26
|
-
- LICENSE
|
26
|
+
- MIT-LICENSE
|
27
27
|
- README.md
|
28
28
|
- Rakefile
|
29
29
|
- bin/zeus
|
@@ -52,8 +52,9 @@ files:
|
|
52
52
|
- spec/server/process_tree_monitor_spec.rb
|
53
53
|
- spec/ui_spec.rb
|
54
54
|
- zeus.gemspec
|
55
|
-
homepage:
|
56
|
-
licenses:
|
55
|
+
homepage: https://github.com/burke/zeus
|
56
|
+
licenses:
|
57
|
+
- MIT
|
57
58
|
post_install_message:
|
58
59
|
rdoc_options: []
|
59
60
|
require_paths:
|