by 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +8 -0
- data/README.rdoc +2 -4
- data/bin/by-session +1 -1
- data/lib/by/server.rb +1 -1
- data/lib/by/worker.rb +23 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24eb5316c698a47210046042dac2cd9912b3517fc88e88b0efed5da5f35d1fde
|
4
|
+
data.tar.gz: 77da0597a3214bdec5d90cc8fd5bcb5b746b7dfc606b80f2460f338ddbb3fbed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65774c8520ea887f2cd0c11bfe71787ef39a00441648170b03b09825267a248443c5678ba8371a4d58963a557d60b150d77c06aad1cbf88fa5e7ba27357af28d
|
7
|
+
data.tar.gz: 84a86908dd443d71cb42a1150856df38f571ed6f199d9aedeee7bbc6f6dc738d7e0910339ec6151fa3202fc3e98c5b4c6339eb808d70b39daf8d73d16884fe68
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== 1.0.1 (2023-02-09)
|
2
|
+
|
3
|
+
* Make by-server stop more reliable by using SIGKILL if server does not stop with SIGQUIT (jeremyevans)
|
4
|
+
|
5
|
+
* Remove debugging code when running a single file with minitest autorun (jeremyevans)
|
6
|
+
|
7
|
+
* Use RbConfig.ruby to get the ruby binary name (eregon) (#1)
|
8
|
+
|
1
9
|
=== 1.0.0 (2023-02-07)
|
2
10
|
|
3
11
|
* Initial Public Release
|
data/README.rdoc
CHANGED
@@ -65,8 +65,7 @@ needs the +socket+ standard library. The only issue with that is that
|
|
65
65
|
|
66
66
|
require 'rbconfig'
|
67
67
|
by = Gem.activate_bin_path("by", "by")
|
68
|
-
|
69
|
-
puts "alias by='#{ruby} --disable-gems #{by}'"
|
68
|
+
puts "alias by='#{RbConfig.ruby} --disable-gems #{by}'"
|
70
69
|
|
71
70
|
Note that one issue with using a shell alias is that it only
|
72
71
|
works when loaded and used by the shell, it won't work if
|
@@ -88,8 +87,7 @@ needs the +socket+ standard library. The only issue with that is that
|
|
88
87
|
|
89
88
|
require 'rbconfig'
|
90
89
|
by = Gem.activate_bin_path("by", "by")
|
91
|
-
|
92
|
-
File.binwrite("by", "#!/bin/sh\nexec #{ruby} --disable-gems #{by} \"$@\"\n")
|
90
|
+
File.binwrite("by", "#!/bin/sh\nexec #{RbConfig.ruby} --disable-gems #{by} \"$@\"\n")
|
93
91
|
File.chmod(0755, "by")
|
94
92
|
|
95
93
|
With each of these approaches, you can get much faster program
|
data/bin/by-session
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
require 'rbconfig'
|
5
5
|
ENV['BY_SOCKET'] ||= File.join(Dir.pwd, '.by_socket')
|
6
6
|
by_server = File.join(__dir__, 'by-server')
|
7
|
-
ruby =
|
7
|
+
ruby = RbConfig.ruby
|
8
8
|
|
9
9
|
begin
|
10
10
|
system(ruby, by_server, *ARGV, exception: true)
|
data/lib/by/server.rb
CHANGED
@@ -89,7 +89,7 @@ module By
|
|
89
89
|
end
|
90
90
|
|
91
91
|
# Handle an existing server socket. This attempts to connect to the socket and
|
92
|
-
# then shutdown the server. If successful, it removes the socket. If
|
92
|
+
# then shutdown the server. If successful, it removes the socket. If unsuccessful,
|
93
93
|
# it will print an error.
|
94
94
|
def handle_existing_server
|
95
95
|
if File.socket?(@socket_path)
|
data/lib/by/worker.rb
CHANGED
@@ -48,7 +48,28 @@ module By
|
|
48
48
|
|
49
49
|
# Stop the server process by sending it the SIGQUIT signal, then exit.
|
50
50
|
def stop_server
|
51
|
-
|
51
|
+
i = 0
|
52
|
+
while Process.ppid != 1 && Process.kill(0, Process.ppid)
|
53
|
+
if i < 4
|
54
|
+
Process.kill(:QUIT, Process.ppid)
|
55
|
+
end
|
56
|
+
sleep 0.1
|
57
|
+
|
58
|
+
if i == 5
|
59
|
+
# This is only reached if the QUIT signal does not
|
60
|
+
# cause the process to exit.
|
61
|
+
Process.kill(:KILL, Process.ppid)
|
62
|
+
end
|
63
|
+
if i > 8
|
64
|
+
# This is only reached if the process has still not
|
65
|
+
# stopped even after the KILL signal was sent.
|
66
|
+
$stderr.puts "ERROR: cannot stop by-server"
|
67
|
+
@normal_exit = false
|
68
|
+
break
|
69
|
+
end
|
70
|
+
|
71
|
+
i += 1
|
72
|
+
end
|
52
73
|
cleanup_proc.call
|
53
74
|
exit
|
54
75
|
end
|
@@ -146,7 +167,7 @@ module By
|
|
146
167
|
if defined?(Minitest) && Minitest.class_variable_get(:@@installed_at_exit)
|
147
168
|
Minitest.singleton_class.prepend(Module.new do
|
148
169
|
define_method(:run) do |argv|
|
149
|
-
super(argv).tap{|exit_code|
|
170
|
+
super(argv).tap{|exit_code| worker.normal_exit = exit_code == true}
|
150
171
|
end
|
151
172
|
end)
|
152
173
|
Minitest.after_run(&cleanup)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: by
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest-global_expectations
|