zeus 0.15.14 → 0.16.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.
- checksums.yaml +5 -5
- data/Gemfile.lock +22 -24
- data/bin/zeus +4 -3
- data/build/zeus-darwin-amd64 +0 -0
- data/build/zeus-darwin-arm64 +0 -0
- data/build/zeus-linux-386 +0 -0
- data/build/zeus-linux-amd64 +0 -0
- data/examples/custom_plan/zeus.json +1 -1
- data/examples/zeus.json +1 -1
- data/lib/zeus/pry.rb +6 -7
- data/lib/zeus/rails.rb +64 -29
- data/lib/zeus/version.rb +1 -1
- data/lib/zeus.rb +0 -1
- data/man/build/zeus +1 -1
- data/man/build/zeus-init +1 -1
- data/man/build/zeus-init.txt +0 -16
- data/man/build/zeus-start +1 -1
- data/man/build/zeus-start.txt +0 -17
- data/man/build/zeus.txt +0 -77
- data/spec/load_tracking_spec.rb +1 -5
- data/spec/zeus_spec.rb +1 -1
- data/zeus.gemspec +1 -1
- metadata +9 -10
- data/.bundle/config +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b6763099ec0acd75e736c7dac93c0b085096cc62ef64716be3c8503eab4f489e
|
|
4
|
+
data.tar.gz: 54f4f6d0316bcedebecdb02e45e1d4c6a953db52ef63d776c2d6c581e83cada7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4e0cdbd5348ab0dbb3bbf3154a2b9743266d7001ec4688df0516eb48593d7a0366686f6df6bbe2d945d7b7eb0c604985f62a8d5d96622e513a56806cba6890f5
|
|
7
|
+
data.tar.gz: 98d7c5c3c7f2095238c77ae049a5c94f9bd525cb8e58fb3a2238018a5ac832954a5e32a2b4fa65687feccf8f00b78f1c4ea39592746b7b6646e286014cacf2cd
|
data/Gemfile.lock
CHANGED
|
@@ -1,44 +1,42 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
zeus (0.
|
|
4
|
+
zeus (0.16.0)
|
|
5
5
|
method_source (>= 0.6.7)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
coderay (1.1.
|
|
11
|
-
diff-lcs (1.
|
|
12
|
-
method_source (0.
|
|
13
|
-
pry (0.
|
|
14
|
-
coderay (~> 1.1
|
|
15
|
-
method_source (~> 0
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
rspec-
|
|
20
|
-
rspec-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
rspec-expectations (3.5.0)
|
|
10
|
+
coderay (1.1.3)
|
|
11
|
+
diff-lcs (1.5.0)
|
|
12
|
+
method_source (1.0.0)
|
|
13
|
+
pry (0.14.2)
|
|
14
|
+
coderay (~> 1.1)
|
|
15
|
+
method_source (~> 1.0)
|
|
16
|
+
rake (13.0.6)
|
|
17
|
+
rspec (3.12.0)
|
|
18
|
+
rspec-core (~> 3.12.0)
|
|
19
|
+
rspec-expectations (~> 3.12.0)
|
|
20
|
+
rspec-mocks (~> 3.12.0)
|
|
21
|
+
rspec-core (3.12.2)
|
|
22
|
+
rspec-support (~> 3.12.0)
|
|
23
|
+
rspec-expectations (3.12.3)
|
|
25
24
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
26
|
-
rspec-support (~> 3.
|
|
27
|
-
rspec-mocks (3.5
|
|
25
|
+
rspec-support (~> 3.12.0)
|
|
26
|
+
rspec-mocks (3.12.5)
|
|
28
27
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
29
|
-
rspec-support (~> 3.
|
|
30
|
-
rspec-support (3.
|
|
31
|
-
slop (3.6.0)
|
|
28
|
+
rspec-support (~> 3.12.0)
|
|
29
|
+
rspec-support (3.12.1)
|
|
32
30
|
|
|
33
31
|
PLATFORMS
|
|
34
|
-
|
|
32
|
+
x86_64-darwin-22
|
|
35
33
|
|
|
36
34
|
DEPENDENCIES
|
|
37
|
-
bundler (~>
|
|
35
|
+
bundler (~> 2.3)
|
|
38
36
|
pry (~> 0.10)
|
|
39
37
|
rake
|
|
40
38
|
rspec (~> 3.1)
|
|
41
39
|
zeus!
|
|
42
40
|
|
|
43
41
|
BUNDLED WITH
|
|
44
|
-
|
|
42
|
+
2.4.12
|
data/bin/zeus
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
platform = `uname -sm`
|
|
3
3
|
|
|
4
4
|
exe = case platform
|
|
5
|
-
when /^Darwin
|
|
6
|
-
when /^
|
|
7
|
-
when /^Linux
|
|
5
|
+
when /^Darwin.*arm64/; "zeus-darwin-arm64"
|
|
6
|
+
when /^Darwin/ ; "zeus-darwin-amd64"
|
|
7
|
+
when /^Linux.*64/ ; "zeus-linux-amd64"
|
|
8
|
+
when /^Linux.*/ ; "zeus-linux-386"
|
|
8
9
|
else
|
|
9
10
|
puts "Zeus is not supported on your platform."
|
|
10
11
|
puts "It's not likely to ever be possible on Windows."
|
data/build/zeus-darwin-amd64
CHANGED
|
Binary file
|
|
Binary file
|
data/build/zeus-linux-386
CHANGED
|
Binary file
|
data/build/zeus-linux-amd64
CHANGED
|
Binary file
|
data/examples/zeus.json
CHANGED
data/lib/zeus/pry.rb
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# Only patch Pry if it is loaded by the app.
|
|
2
|
+
if defined?(Pry::Pager)
|
|
4
3
|
class Pry::Pager
|
|
5
4
|
def best_available
|
|
5
|
+
# Versions of Pry prior to 0.13 define `Pry::Pager#_pry_`
|
|
6
|
+
# while versions after that define `Pry::Pager#pry_instance`
|
|
7
|
+
pry = defined?(pry_instance) ? pry_instance : _pry_
|
|
6
8
|
# paging does not work in zeus so disable it
|
|
7
|
-
NullPager.new(
|
|
9
|
+
NullPager.new(pry.output)
|
|
8
10
|
end
|
|
9
11
|
end
|
|
10
|
-
|
|
11
|
-
rescue LoadError => e
|
|
12
|
-
# pry is not available, so no need to patch it
|
|
13
12
|
end
|
data/lib/zeus/rails.rb
CHANGED
|
@@ -95,6 +95,7 @@ module Zeus
|
|
|
95
95
|
|
|
96
96
|
def default_bundle
|
|
97
97
|
Bundler.require(:default)
|
|
98
|
+
require 'zeus/pry' if defined?(Pry)
|
|
98
99
|
Zeus::LoadTracking.add_feature('./Gemfile.lock')
|
|
99
100
|
end
|
|
100
101
|
|
|
@@ -115,56 +116,81 @@ module Zeus
|
|
|
115
116
|
|
|
116
117
|
def generate
|
|
117
118
|
load_rails_generators
|
|
118
|
-
|
|
119
|
+
|
|
120
|
+
if rails_5_1_or_higher?
|
|
121
|
+
run_rails_5_1_or_higher_command('generate')
|
|
122
|
+
else
|
|
123
|
+
require 'rails/commands/generate'
|
|
124
|
+
end
|
|
125
|
+
|
|
119
126
|
end
|
|
120
127
|
|
|
121
128
|
def destroy
|
|
122
129
|
load_rails_generators
|
|
123
|
-
|
|
130
|
+
if rails_5_1_or_higher?
|
|
131
|
+
run_rails_5_1_or_higher_command('destroy')
|
|
132
|
+
else
|
|
133
|
+
require 'rails/commands/destroy'
|
|
134
|
+
end
|
|
124
135
|
end
|
|
125
136
|
|
|
126
137
|
def runner
|
|
127
|
-
|
|
138
|
+
if rails_5_1_or_higher?
|
|
139
|
+
run_rails_5_1_or_higher_command('runner')
|
|
140
|
+
else
|
|
141
|
+
require 'rails/commands/runner'
|
|
142
|
+
end
|
|
128
143
|
end
|
|
129
144
|
|
|
130
145
|
def console
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if defined?(Pry)
|
|
134
|
-
# Adding Rails Console helpers to Pry.
|
|
135
|
-
if (3..4).include?(::Rails::VERSION::MAJOR)
|
|
136
|
-
require 'rails/console/app'
|
|
137
|
-
require 'rails/console/helpers'
|
|
138
|
-
TOPLEVEL_BINDING.eval('self').extend ::Rails::ConsoleMethods
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
Pry.start
|
|
146
|
+
if rails_5_1_or_higher?
|
|
147
|
+
run_rails_5_1_or_higher_command('console')
|
|
142
148
|
else
|
|
143
|
-
|
|
149
|
+
require 'rails/commands/console'
|
|
150
|
+
if defined?(Pry)
|
|
151
|
+
# Adding Rails Console helpers to Pry.
|
|
152
|
+
if (3..4).include?(::Rails::VERSION::MAJOR)
|
|
153
|
+
require 'rails/console/app'
|
|
154
|
+
require 'rails/console/helpers'
|
|
155
|
+
TOPLEVEL_BINDING.eval('self').extend ::Rails::ConsoleMethods
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
Pry.start
|
|
159
|
+
else
|
|
160
|
+
::Rails::Console.start(::Rails.application)
|
|
161
|
+
end
|
|
144
162
|
end
|
|
145
163
|
end
|
|
146
164
|
|
|
147
165
|
def dbconsole
|
|
148
|
-
|
|
166
|
+
if rails_5_1_or_higher?
|
|
167
|
+
run_rails_5_1_or_higher_command('dbconsole')
|
|
168
|
+
else
|
|
169
|
+
require 'rails/commands/dbconsole'
|
|
149
170
|
|
|
150
|
-
|
|
171
|
+
meth = ::Rails::DBConsole.method(:start)
|
|
151
172
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
173
|
+
# `Rails::DBConsole.start` has been changed to load faster in
|
|
174
|
+
# https://github.com/rails/rails/commit/346bb018499cde6699fcce6c68dd7e9be45c75e1
|
|
175
|
+
#
|
|
176
|
+
# This will work with both versions.
|
|
177
|
+
if meth.arity.zero?
|
|
178
|
+
::Rails::DBConsole.start
|
|
179
|
+
else
|
|
180
|
+
::Rails::DBConsole.start(::Rails.application)
|
|
181
|
+
end
|
|
160
182
|
end
|
|
161
183
|
end
|
|
162
184
|
|
|
163
185
|
def server
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
186
|
+
if rails_5_1_or_higher?
|
|
187
|
+
run_rails_5_1_or_higher_command('server')
|
|
188
|
+
else
|
|
189
|
+
require 'rails/commands/server'
|
|
190
|
+
server = ::Rails::Server.new
|
|
191
|
+
Dir.chdir(::Rails.application.root)
|
|
192
|
+
server.start
|
|
193
|
+
end
|
|
168
194
|
end
|
|
169
195
|
|
|
170
196
|
def test_environment
|
|
@@ -271,6 +297,15 @@ module Zeus
|
|
|
271
297
|
rescue LoadError # Rails 3.0 doesn't require this block to be run, but 3.2+ does
|
|
272
298
|
end
|
|
273
299
|
|
|
300
|
+
def run_rails_5_1_or_higher_command(command)
|
|
301
|
+
require 'rails/command'
|
|
302
|
+
::Rails::Command.invoke(command, ARGV)
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
def rails_5_1_or_higher?
|
|
306
|
+
(::Rails::VERSION::MAJOR == 5 && ::Rails::VERSION::MINOR >= 1) ||
|
|
307
|
+
::Rails::VERSION::MAJOR > 5
|
|
308
|
+
end
|
|
274
309
|
end
|
|
275
310
|
end
|
|
276
311
|
|
data/lib/zeus/version.rb
CHANGED
data/lib/zeus.rb
CHANGED
data/man/build/zeus
CHANGED
data/man/build/zeus-init
CHANGED
data/man/build/zeus-init.txt
CHANGED
|
@@ -1,17 +1 @@
|
|
|
1
|
-
ZEUS-INIT(1) ZEUS-INIT(1)
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
NAME
|
|
6
|
-
zeus-init - Generate a template zeus.json
|
|
7
|
-
|
|
8
|
-
SYNOPSIS
|
|
9
|
-
zeus init
|
|
10
|
-
|
|
11
|
-
DESCRIPTION
|
|
12
|
-
Creates a zeus.json file in the current directory. This example file is
|
|
13
|
-
useful for rails applications, but can be modified to suit your needs.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
January 2017 ZEUS-INIT(1)
|
data/man/build/zeus-start
CHANGED
data/man/build/zeus-start.txt
CHANGED
data/man/build/zeus.txt
CHANGED
|
@@ -1,78 +1 @@
|
|
|
1
|
-
ZEUS(1) ZEUS(1)
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
NAME
|
|
6
|
-
zeus - boot rails in under a second
|
|
7
|
-
|
|
8
|
-
SYNOPSIS
|
|
9
|
-
zeus [--no-color] [--log FILE] [--file-change-delay TIME] [--config
|
|
10
|
-
PATH] COMMAND [ARGS]
|
|
11
|
-
|
|
12
|
-
DESCRIPTION
|
|
13
|
-
Zeus makes working with large codebases much less painful.
|
|
14
|
-
|
|
15
|
-
To use Zeus with Ruby on Rails 3.0+, Just run zeus start in your
|
|
16
|
-
project directory. It will output a list of available commands, includ-
|
|
17
|
-
ing tasks to spawn consoles, servers, tests, and rake tasks.
|
|
18
|
-
|
|
19
|
-
See https://github.com/burke/zeus/blob/master/docs/ruby/modifying.md
|
|
20
|
-
for information on modifying the boot process that Zeus uses by default
|
|
21
|
-
and adding custom tasks.
|
|
22
|
-
|
|
23
|
-
SLIGHTLY MORE TECHNICAL DESCRIPTION
|
|
24
|
-
Zeus is a language-agnostic application checkpointer for non-multi-
|
|
25
|
-
threaded applications.
|
|
26
|
-
|
|
27
|
-
It is primarily targeted at ruby and other dynamic languages, where
|
|
28
|
-
application boot time can be tens of seconds, but it can be made to
|
|
29
|
-
work for nearly any language. However, zeus does not work well with
|
|
30
|
-
multithreaded applications. It relies heavily on fork(2), which is
|
|
31
|
-
largely incompatible with multithreaded systems.
|
|
32
|
-
|
|
33
|
-
Currently only ruby is targeted, but support for other languages is
|
|
34
|
-
planned.
|
|
35
|
-
|
|
36
|
-
Zeus lets you define common tasks, and preloads all of them in the
|
|
37
|
-
background. When you ask to run them, zeus transparently connects your
|
|
38
|
-
terminal to the already-running process in milliseconds.
|
|
39
|
-
|
|
40
|
-
This lets you, for example, run unit tests in dozens of milliseconds,
|
|
41
|
-
rather than dozens of seconds.
|
|
42
|
-
|
|
43
|
-
Zeus also monitors all files loaded by your application, and restarts
|
|
44
|
-
parts of it when dependencies change, to keep everything up-to-date.
|
|
45
|
-
|
|
46
|
-
WAY MORE TECHNICAL DESCRIPTION
|
|
47
|
-
See https://github.com/burke/zeus/blob/master/docs/overview.md
|
|
48
|
-
|
|
49
|
-
OPTIONS
|
|
50
|
-
--no-color
|
|
51
|
-
Prints all output without color
|
|
52
|
-
|
|
53
|
-
--log trace-log-name
|
|
54
|
-
Prints process tree state details to the log file specified.
|
|
55
|
-
|
|
56
|
-
--file-change-delay delay
|
|
57
|
-
Collect all file changes that happen within the specified delay
|
|
58
|
-
time and restart processes only after this deadline expires. The
|
|
59
|
-
argument must be parseable by time.ParseDuration. The default
|
|
60
|
-
delay is 300ms.
|
|
61
|
-
|
|
62
|
-
--config path
|
|
63
|
-
Read from the given JSON config file. Defaults to zeus.json.
|
|
64
|
-
|
|
65
|
-
BUILTIN COMMANDS
|
|
66
|
-
zeus start(1) zeus-start.1.html
|
|
67
|
-
Start a zeus server in the current directory using zeus.json
|
|
68
|
-
|
|
69
|
-
zeus init(1) zeus-init.1.html
|
|
70
|
-
Generate a template zeus.json
|
|
71
|
-
|
|
72
|
-
zeus commands(1)
|
|
73
|
-
List the commands defined by zeus.json
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
January 2017 ZEUS(1)
|
data/spec/load_tracking_spec.rb
CHANGED
|
@@ -69,11 +69,7 @@ describe "Zeus::LoadTracking" do
|
|
|
69
69
|
|
|
70
70
|
context 'loading invalid code' do
|
|
71
71
|
it 'tracks requires that raise a SyntaxError' do
|
|
72
|
-
files = [expand_asset_path('invalid_syntax.rb')]
|
|
73
|
-
# SyntaxError does not have a backtrace in 2.3+ (https://bugs.ruby-lang.org/issues/12811)
|
|
74
|
-
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
|
|
75
|
-
files << test_filename
|
|
76
|
-
end
|
|
72
|
+
files = [test_filename, expand_asset_path('invalid_syntax.rb')]
|
|
77
73
|
|
|
78
74
|
expect_to_load(files, SyntaxError) do
|
|
79
75
|
require expand_asset_path('invalid_syntax')
|
data/spec/zeus_spec.rb
CHANGED
data/zeus.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zeus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Burke Libbey
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: method_source
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '2.3'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '2.3'
|
|
41
41
|
description: Boot any rails app in under a second
|
|
42
42
|
email:
|
|
43
43
|
- burke@libbey.me
|
|
@@ -46,7 +46,6 @@ executables:
|
|
|
46
46
|
extensions: []
|
|
47
47
|
extra_rdoc_files: []
|
|
48
48
|
files:
|
|
49
|
-
- ".bundle/config"
|
|
50
49
|
- Gemfile
|
|
51
50
|
- Gemfile.lock
|
|
52
51
|
- MIT-LICENSE
|
|
@@ -56,6 +55,7 @@ files:
|
|
|
56
55
|
- bin/rspec
|
|
57
56
|
- bin/zeus
|
|
58
57
|
- build/zeus-darwin-amd64
|
|
58
|
+
- build/zeus-darwin-arm64
|
|
59
59
|
- build/zeus-linux-386
|
|
60
60
|
- build/zeus-linux-amd64
|
|
61
61
|
- examples/custom_plan/cucumber_plan.rb
|
|
@@ -96,7 +96,7 @@ homepage: https://github.com/burke/zeus
|
|
|
96
96
|
licenses:
|
|
97
97
|
- MIT
|
|
98
98
|
metadata: {}
|
|
99
|
-
post_install_message:
|
|
99
|
+
post_install_message:
|
|
100
100
|
rdoc_options: []
|
|
101
101
|
require_paths:
|
|
102
102
|
- lib
|
|
@@ -111,9 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: '0'
|
|
113
113
|
requirements: []
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
signing_key:
|
|
114
|
+
rubygems_version: 3.1.6
|
|
115
|
+
signing_key:
|
|
117
116
|
specification_version: 4
|
|
118
117
|
summary: Zeus is an intelligent preloader for ruby applications. It allows normal
|
|
119
118
|
development tasks to be run in a fraction of a second.
|
data/.bundle/config
DELETED