stub_server 0.2.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/stub_server/version.rb +1 -1
- data/lib/stub_server.rb +16 -4
- metadata +18 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 05ae6e405bf5a0cba95079404c91d8d6d2c9ce3db5c7b8945152317784ac557e
|
4
|
+
data.tar.gz: 63ffb7d7b3ecfd68efb46afc7bc3b057c44330cd7d90efe314c3ba1abd43b1d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 740f2b4d866208cb25d9327bd1641709383212532fd826de9821f5c136b5a7f103447780337c51bc93974308c856db9f5e76e3840c05c3d243144510af2679a1
|
7
|
+
data.tar.gz: b14b9380693882907c8c56dc5aeb5ad5bbb179c464d6d4fc6315a1d083c4e3ce372b9495d0e69e9f967440f2f73424d40bc4a79f217d1cb28e05b8f0b031aa61
|
data/lib/stub_server/version.rb
CHANGED
data/lib/stub_server.rb
CHANGED
@@ -18,10 +18,12 @@ class StubServer
|
|
18
18
|
@json = json
|
19
19
|
@webrick = webrick
|
20
20
|
@started = false
|
21
|
+
@server = nil
|
22
|
+
@thread = nil
|
21
23
|
end
|
22
24
|
|
23
25
|
def boot
|
24
|
-
Thread.new do
|
26
|
+
@thread = Thread.new do
|
25
27
|
options = {
|
26
28
|
Port: @port,
|
27
29
|
Logger: WEBrick::Log.new("/dev/null"),
|
@@ -45,7 +47,7 @@ class StubServer
|
|
45
47
|
|
46
48
|
options.merge!(@webrick)
|
47
49
|
|
48
|
-
Rack::Handler::WEBrick.run(self, options) { |s| @server = s }
|
50
|
+
Rack::Handler::WEBrick.run(self, **options) { |s| @server = s }
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -57,7 +59,7 @@ class StubServer
|
|
57
59
|
path = env.fetch("PATH_INFO")
|
58
60
|
code, headers, body = @replies[path]
|
59
61
|
unless code
|
60
|
-
warn "StubServer: Missing reply for path #{path}" # some clients does not show current url when failing
|
62
|
+
warn "StubServer #{@port}: Missing reply for path #{path}" # some clients does not show current url when failing
|
61
63
|
raise
|
62
64
|
end
|
63
65
|
body = [body.to_json] if @json
|
@@ -65,6 +67,16 @@ class StubServer
|
|
65
67
|
end
|
66
68
|
|
67
69
|
def shutdown
|
68
|
-
@server
|
70
|
+
@server&.shutdown
|
71
|
+
@thread.join # need to wait here and cannot simpliy kill or webbrick keeps running
|
72
|
+
|
73
|
+
# TimeoutHandler keeps running forever which breaks tests that assert no extra threads
|
74
|
+
# we should only stop it if it is empty, otherwise we are still waiting for other servers
|
75
|
+
# ideally we'd use WEBrick::Utils::TimeoutHandler::TimeoutMutex.synchronize to avoid race conditions,
|
76
|
+
# but that is also used in .terminate and would lead to deadlocks ...
|
77
|
+
# TODO: open ruby issue for race-condition free terminate_if_empty
|
78
|
+
if WEBrick::Utils::TimeoutHandler.instance.instance_variable_get(:@timeout_info).empty?
|
79
|
+
WEBrick::Utils::TimeoutHandler.terminate
|
80
|
+
end
|
69
81
|
end
|
70
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stub_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: webrick
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description:
|
28
42
|
email: michael@grosser.it
|
29
43
|
executables: []
|
@@ -45,15 +59,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
59
|
requirements:
|
46
60
|
- - ">="
|
47
61
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
62
|
+
version: 2.5.0
|
49
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
64
|
requirements:
|
51
65
|
- - ">="
|
52
66
|
- !ruby/object:Gem::Version
|
53
67
|
version: '0'
|
54
68
|
requirements: []
|
55
|
-
|
56
|
-
rubygems_version: 2.5.1
|
69
|
+
rubygems_version: 3.2.16
|
57
70
|
signing_key:
|
58
71
|
specification_version: 4
|
59
72
|
summary: Boot up a real server to serve testing replies
|