nonnative 1.93.0 → 1.95.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 239e2be5d445a7f58bf457821ffd543980f07bcbdf2d0b742bd1a0575a78f977
4
- data.tar.gz: 39fb0a5d578605bf1d3ac83879d2a4e5a294b195f1d0594217b6457ba67ca88e
3
+ metadata.gz: 3613ca777546fc006d042c2362ea786703faf50f9c7da1dbb000ee86888576ec
4
+ data.tar.gz: 9ccf77b2d359cb33bb576e83af6de8747eadd13de2d205a339e12121bb20559b
5
5
  SHA512:
6
- metadata.gz: 2336392e5d73671c3f3da07f0f2faf6f094d851d1c6bc3bb055d2957b21a10fcac5c2e5ee61c7ae936171d4a9846d2730274d63b5da6df2bc7fe34f82e0c6bdf
7
- data.tar.gz: e719469fbad66e593780bc6497d7faf3b28e5c82b845d66962ea9c11e0c946118824551f9a636df59775dd0528b65b9305dab981b0204ce9b16f42e28aa70353
6
+ metadata.gz: 81ad331d2b921d218aa07c3c5dde834e3cca80065ec2f62b12bc33e73902fe3cb757d5bfe997261c11f3eb1fd114753df1bba00d5b13a884ad3b87546fd4ec70
7
+ data.tar.gz: d286638c65e67430acc7f3f262ddd99ba684b6a6eb5235e276b974481925a21eef519d6f2244b475d86183464c842d04300cf4fe0bafde11335b3385d5e6637e
data/.circleci/config.yml CHANGED
@@ -3,7 +3,7 @@ version: 2.1
3
3
  jobs:
4
4
  build:
5
5
  docker:
6
- - image: alexfalkowski/ruby:1.7
6
+ - image: alexfalkowski/ruby:1.23
7
7
  working_directory: ~/nonnative
8
8
  steps:
9
9
  - checkout
@@ -31,7 +31,7 @@ jobs:
31
31
  resource_class: large
32
32
  release:
33
33
  docker:
34
- - image: alexfalkowski/release:3.6
34
+ - image: alexfalkowski/release:3.15
35
35
  working_directory: ~/nonnative
36
36
  steps:
37
37
  - checkout
data/.codecov.yml ADDED
@@ -0,0 +1,6 @@
1
+ coverage:
2
+ precision: 2
3
+ round: down
4
+ range: "80...100"
5
+ status:
6
+ patch: false
@@ -5,7 +5,7 @@ updates:
5
5
  schedule:
6
6
  interval: "daily"
7
7
  commit-message:
8
- prefix: "fix"
8
+ prefix: "test"
9
9
  prefix-development: "build"
10
10
  include: "scope"
11
11
  - package-ecosystem: "gitsubmodule"
data/CHANGELOG.md CHANGED
@@ -6,6 +6,49 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## [v1.95.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.95.0) - 2025-04-30
10
+
11
+ - [`5146eb7`](https://github.com/alexfalkowski/nonnative/commit/5146eb76cc7fb0dbe8ad5443d189639a7837f5b2) feat(http): use puma (#547)
12
+ - [`4ee710d`](https://github.com/alexfalkowski/nonnative/commit/4ee710dc56de05b7b6b724705aecfd0921a038ec) build(deps): bump bin from `b0fd780` to `926a71b` (#545)
13
+
14
+ ## [v1.94.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.94.0) - 2025-04-27
15
+
16
+ - [`d337a15`](https://github.com/alexfalkowski/nonnative/commit/d337a1586bf8eb39f5ceae18f3dc06b852c7a4fc) feat(logger): add logging (#544)
17
+ - [`0e76d4b`](https://github.com/alexfalkowski/nonnative/commit/0e76d4b2ac39bc1373c6cd0830a52becc7c079b2) build(ci): use alexfalkowski/release:3.15 (#543)
18
+ - [`82088dc`](https://github.com/alexfalkowski/nonnative/commit/82088dcef282b442d6319fc9b82a10d8ac066270) build(codecov): add config (#542)
19
+ - [`fe7ef0e`](https://github.com/alexfalkowski/nonnative/commit/fe7ef0e3b1b08a21a6ec75912b775be395218911) test(features): spelling mistake (#541)
20
+ - [`10aea2e`](https://github.com/alexfalkowski/nonnative/commit/10aea2e94b25f1cd953e04cb3cd5089a8f48ca20) build(deps): bump bin from `dbf1984` to `b0fd780` (#540)
21
+ - [`fdbc409`](https://github.com/alexfalkowski/nonnative/commit/fdbc4098aa32df88f081c21ead7283dcf69fe616) build(ci): use alexfalkowski/ruby:1.23 (#539)
22
+ - [`587f2cf`](https://github.com/alexfalkowski/nonnative/commit/587f2cf3306150c0e1b883b04a602d7a95361458) build(deps): bump bin from `68f9c91` to `dbf1984` (#538)
23
+ - [`44f2570`](https://github.com/alexfalkowski/nonnative/commit/44f25700b4ec50aec182a535ffce58e0e67e399a) build(ci): use alexfalkowski/ruby:1.22 (#537)
24
+ - [`26c3109`](https://github.com/alexfalkowski/nonnative/commit/26c3109142407056bd1924eb25f0218943e12de1) build(deps): bump bin from `78af843` to `68f9c91` (#536)
25
+ - [`3488f3e`](https://github.com/alexfalkowski/nonnative/commit/3488f3e991158afbfc212cea2baebb4e4ac8708a) build(ci): use alexfalkowski/ruby:1.21 (#535)
26
+ - [`bf99aac`](https://github.com/alexfalkowski/nonnative/commit/bf99aac8cbee77a65641d698dc20f5917f47fd5d) build(deps): bump bin from `78af843` to `68f9c91` (#534)
27
+ - [`ac6e108`](https://github.com/alexfalkowski/nonnative/commit/ac6e108c22a6ea1d08aeda4f38dac8a2ebd33577) build(ci): use alexfalkowski/ruby:1.20 (#533)
28
+ - [`07ff9d7`](https://github.com/alexfalkowski/nonnative/commit/07ff9d7ee48df3c79bbf2df6c9c68d2ea6e59823) build(deps): bump bin from `16e2296` to `78af843` (#532)
29
+ - [`31e97fd`](https://github.com/alexfalkowski/nonnative/commit/31e97fd6c64986cfe3786e4d7e44c17232e4a890) build(deps): bump bin from `c661929` to `16e2296` (#531)
30
+ - [`d97ba88`](https://github.com/alexfalkowski/nonnative/commit/d97ba88e25eb3ab40a541e35e48879abb704bbe9) build(deps): bump bin from `446c480` to `c661929` (#530)
31
+ - [`34d0190`](https://github.com/alexfalkowski/nonnative/commit/34d0190f6eca0d7856128374adb4a1aeeb083bdf) build(deps): bump bin from `b887116` to `446c480` (#529)
32
+ - [`aeca841`](https://github.com/alexfalkowski/nonnative/commit/aeca8412b40c6d272d19019784e8b9194a59c027) build(deps): bump bin from `8e1a9ac` to `b887116` (#528)
33
+ - [`7bbe128`](https://github.com/alexfalkowski/nonnative/commit/7bbe1288d2c373227a981082e7044fe31c9a034f) build(gems): add arm64-darwin-24 (#527)
34
+ - [`dcf3f26`](https://github.com/alexfalkowski/nonnative/commit/dcf3f2652c771755de326dee0d8262940b9497ec) build(deps): update all (#526)
35
+ - [`4f697a9`](https://github.com/alexfalkowski/nonnative/commit/4f697a9b8d1c6f118eec411734e2fd49b333db5d) build(deps): update all (#525)
36
+ - [`b9b26dc`](https://github.com/alexfalkowski/nonnative/commit/b9b26dc1995bb8fa023b5c995580efce2acad9bd) build(deps): bump bin from `637442f` to `8e1a9ac` (#524)
37
+ - [`cbfedd2`](https://github.com/alexfalkowski/nonnative/commit/cbfedd27eb19eadbdf51e8b45da95290acd2b967) build(ci): update alexfalkowski/ruby:1.16 (#523)
38
+ - [`b1f7ebd`](https://github.com/alexfalkowski/nonnative/commit/b1f7ebdfc7a95e6666e0d5c4dd38110b6e76e8c5) build(deps): update with make update-all-dep (#522)
39
+ - [`259b3c6`](https://github.com/alexfalkowski/nonnative/commit/259b3c6c2f90ac98ebfeb5cb19859ab9b4ad363a) build(deps): bump bin from `c8030a1` to `637442f` (#521)
40
+ - [`b8ec44d`](https://github.com/alexfalkowski/nonnative/commit/b8ec44d6b99a662b9757364e2dbfe088b7a19a8a) build(deps): bundle update (#520)
41
+ - [`4cba661`](https://github.com/alexfalkowski/nonnative/commit/4cba6611423e8632a0dcfb87b552ac76696fd099) build(ci): use test for dependabot (#519)
42
+ - [`2cb62d4`](https://github.com/alexfalkowski/nonnative/commit/2cb62d47c82494db7b79e67eb24f0a0f28c0d299) build(deps): bump bin from `8592a53` to `c8030a1` (#517)
43
+ - [`ddd4ace`](https://github.com/alexfalkowski/nonnative/commit/ddd4ace2c987266acfcd203c447c1a1e01209ad8) build(ci): update alexfalkowski/ruby:1.12 (#516)
44
+ - [`a70ae5c`](https://github.com/alexfalkowski/nonnative/commit/a70ae5c1652b5f96ef17eedf0444e668bc6eaf41) build(deps): bump bin from `dc45d04` to `8592a53` (#515)
45
+ - [`ad63e97`](https://github.com/alexfalkowski/nonnative/commit/ad63e97672fe34da7f7000a4f063d40aaea01143) build(deps): bump bin from `e1bf51d` to `dc45d04` (#514)
46
+ - [`29c424c`](https://github.com/alexfalkowski/nonnative/commit/29c424c54e622a6e9602d65bac375e5b342d35fe) build(deps): bump bin from `3e0336a` to `e1bf51d` (#513)
47
+ - [`887ab8f`](https://github.com/alexfalkowski/nonnative/commit/887ab8f46003809ef0d7ed7c38c7ad55e7a687f5) build(deps): bump bin from `877a42c` to `3e0336a` (#512)
48
+ - [`42574d3`](https://github.com/alexfalkowski/nonnative/commit/42574d351b35c177adf049dda276853eff2ddc37) build(deps): bump bin from `5b56b0c` to `877a42c` (#511)
49
+ - [`84a2a22`](https://github.com/alexfalkowski/nonnative/commit/84a2a22e16e2afcd5040b7f23e626f0431e94cdb) build(ci): add x86_64-darwin-23 (#510)
50
+ - [`f9ecb6b`](https://github.com/alexfalkowski/nonnative/commit/f9ecb6b19cbe7c77131709231d18783477a895f8) test(deps): use bundler version 2.6.3 (#509)
51
+
9
52
  ## [v1.93.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.93.0) - 2025-02-03
10
53
 
11
54
  - [`520eed9`](https://github.com/alexfalkowski/nonnative/commit/520eed9b7181064a8bfcf7824165f3ccf8087cab) feat(ruby): update to v3.4.0 (#508)
data/Gemfile.lock CHANGED
@@ -1,25 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.93.0)
4
+ nonnative (1.95.0)
5
5
  concurrent-ruby (>= 1, < 2)
6
6
  config (>= 5, < 6)
7
7
  cucumber (>= 7, < 10)
8
8
  get_process_mem (>= 1, < 2)
9
9
  grpc (>= 1, < 2)
10
- rackup (>= 2, < 3)
10
+ puma (>= 6, < 7)
11
11
  rest-client (>= 2, < 3)
12
12
  retriable (>= 3, < 4)
13
13
  rspec-benchmark (>= 0, < 1)
14
14
  rspec-expectations (>= 3, < 4)
15
15
  rspec-wait (>= 1, < 2)
16
16
  sinatra (>= 4, < 5)
17
- webrick (>= 1, < 2)
18
17
 
19
18
  GEM
20
19
  remote: https://rubygems.org/
21
20
  specs:
22
- ast (2.4.2)
21
+ ast (2.4.3)
23
22
  base64 (0.2.0)
24
23
  benchmark-malloc (0.2.0)
25
24
  benchmark-perf (0.6.0)
@@ -56,58 +55,48 @@ GEM
56
55
  cucumber-messages (22.0.0)
57
56
  cucumber-tag-expressions (6.1.2)
58
57
  deep_merge (1.2.2)
59
- diff-lcs (1.5.1)
58
+ diff-lcs (1.6.1)
60
59
  docile (1.4.1)
61
60
  domain_name (0.6.20240107)
62
- ffi (1.17.1-arm64-darwin)
63
- ffi (1.17.1-x86_64-darwin)
64
- ffi (1.17.1-x86_64-linux-gnu)
61
+ ffi (1.17.2-x86_64-darwin)
65
62
  get_process_mem (1.0.0)
66
63
  bigdecimal (>= 2.0)
67
64
  ffi (~> 1.0)
68
- google-protobuf (4.29.3-arm64-darwin)
65
+ google-protobuf (4.30.2-x86_64-darwin)
69
66
  bigdecimal
70
67
  rake (>= 13)
71
- google-protobuf (4.29.3-x86_64-darwin)
72
- bigdecimal
73
- rake (>= 13)
74
- google-protobuf (4.29.3-x86_64-linux)
75
- bigdecimal
76
- rake (>= 13)
77
- googleapis-common-protos-types (1.18.0)
68
+ googleapis-common-protos-types (1.19.0)
78
69
  google-protobuf (>= 3.18, < 5.a)
79
- grpc (1.70.1-arm64-darwin)
80
- google-protobuf (>= 3.25, < 5.0)
81
- googleapis-common-protos-types (~> 1.0)
82
- grpc (1.70.1-x86_64-darwin)
83
- google-protobuf (>= 3.25, < 5.0)
84
- googleapis-common-protos-types (~> 1.0)
85
- grpc (1.70.1-x86_64-linux)
70
+ grpc (1.71.0-x86_64-darwin)
86
71
  google-protobuf (>= 3.25, < 5.0)
87
72
  googleapis-common-protos-types (~> 1.0)
88
73
  http-accept (1.7.0)
89
74
  http-cookie (1.0.8)
90
75
  domain_name (~> 0.5)
91
- json (2.9.1)
76
+ json (2.11.3)
92
77
  language_server-protocol (3.17.0.4)
93
- logger (1.6.5)
94
- mime-types (3.6.0)
78
+ lint_roller (1.1.0)
79
+ logger (1.7.0)
80
+ mime-types (3.6.2)
95
81
  logger
96
82
  mime-types-data (~> 3.2015)
97
- mime-types-data (3.2025.0107)
83
+ mime-types-data (3.2025.0422)
98
84
  mini_mime (1.1.5)
99
85
  multi_test (1.1.0)
100
86
  mustermann (3.0.3)
101
87
  ruby2_keywords (~> 0.0.1)
102
88
  netrc (0.11.0)
89
+ nio4r (2.7.4)
103
90
  ostruct (0.6.1)
104
- parallel (1.26.3)
105
- parser (3.3.7.0)
91
+ parallel (1.27.0)
92
+ parser (3.3.8.0)
106
93
  ast (~> 2.4.1)
107
94
  racc
108
- prism (1.3.0)
95
+ prism (1.4.0)
96
+ puma (6.6.0)
97
+ nio4r (~> 2.0)
109
98
  racc (1.8.1)
110
- rack (3.1.9)
99
+ rack (3.1.13)
111
100
  rack-protection (4.1.1)
112
101
  base64 (>= 0.1.0)
113
102
  logger (>= 1.6.0)
@@ -115,11 +104,9 @@ GEM
115
104
  rack-session (2.1.0)
116
105
  base64 (>= 0.1.0)
117
106
  rack (>= 3.0.0)
118
- rackup (2.2.1)
119
- rack (>= 3)
120
107
  rainbow (3.1.1)
121
108
  rake (13.2.1)
122
- rbs (3.8.1)
109
+ rbs (3.9.2)
123
110
  logger
124
111
  regexp_parser (2.10.0)
125
112
  rest-client (2.1.0)
@@ -128,7 +115,7 @@ GEM
128
115
  mime-types (>= 1.16, < 4.0)
129
116
  netrc (~> 0.8)
130
117
  retriable (3.1.2)
131
- rexml (3.4.0)
118
+ rexml (3.4.1)
132
119
  rspec (3.13.0)
133
120
  rspec-core (~> 3.13.0)
134
121
  rspec-expectations (~> 3.13.0)
@@ -138,7 +125,7 @@ GEM
138
125
  benchmark-perf (~> 0.6)
139
126
  benchmark-trend (~> 0.4)
140
127
  rspec (>= 3.0)
141
- rspec-core (3.13.2)
128
+ rspec-core (3.13.3)
142
129
  rspec-support (~> 3.13.0)
143
130
  rspec-expectations (3.13.3)
144
131
  diff-lcs (>= 1.2.0, < 2.0)
@@ -149,19 +136,21 @@ GEM
149
136
  rspec-support (3.13.2)
150
137
  rspec-wait (1.0.1)
151
138
  rspec (>= 3.4)
152
- rubocop (1.71.1)
139
+ rubocop (1.75.3)
153
140
  json (~> 2.3)
154
- language_server-protocol (>= 3.17.0)
141
+ language_server-protocol (~> 3.17.0.2)
142
+ lint_roller (~> 1.1.0)
155
143
  parallel (~> 1.10)
156
144
  parser (>= 3.3.0.2)
157
145
  rainbow (>= 2.2.2, < 4.0)
158
146
  regexp_parser (>= 2.9.3, < 3.0)
159
- rubocop-ast (>= 1.38.0, < 2.0)
147
+ rubocop-ast (>= 1.44.0, < 2.0)
160
148
  ruby-progressbar (~> 1.7)
161
149
  unicode-display_width (>= 2.4.0, < 4.0)
162
- rubocop-ast (1.38.0)
163
- parser (>= 3.3.1.0)
164
- ruby-lsp (0.23.8)
150
+ rubocop-ast (1.44.1)
151
+ parser (>= 3.3.7.2)
152
+ prism (~> 1.4)
153
+ ruby-lsp (0.23.15)
165
154
  language_server-protocol (~> 3.17.0)
166
155
  prism (>= 1.2, < 2.0)
167
156
  rbs (>= 3, < 4)
@@ -184,20 +173,17 @@ GEM
184
173
  rack-protection (= 4.1.1)
185
174
  rack-session (>= 2.0.0, < 3)
186
175
  tilt (~> 2.0)
187
- sorbet-runtime (0.5.11798)
176
+ sorbet-runtime (0.5.12042)
188
177
  sys-uname (1.3.1)
189
178
  ffi (~> 1.1)
190
179
  tilt (2.6.0)
191
180
  unicode-display_width (3.1.4)
192
181
  unicode-emoji (~> 4.0, >= 4.0.4)
193
182
  unicode-emoji (4.0.4)
194
- webrick (1.9.1)
195
183
 
196
184
  PLATFORMS
197
- arm64-darwin-22
198
- arm64-darwin-23
199
185
  x86_64-darwin-21
200
- x86_64-linux
186
+ x86_64-darwin-23
201
187
 
202
188
  DEPENDENCIES
203
189
  bundler
@@ -208,4 +194,4 @@ DEPENDENCIES
208
194
  simplecov-cobertura
209
195
 
210
196
  BUNDLED WITH
211
- 2.6.2
197
+ 2.6.8
data/README.md CHANGED
@@ -37,6 +37,7 @@ Configure nonnative with the following:
37
37
 
38
38
  - The version of the configuration (1.0).
39
39
  - The URL of the service.
40
+ - A log file.
40
41
  - Process, Server or Service that you want to start.
41
42
  - A timeout value.
42
43
  - A time to wait.
@@ -64,6 +65,7 @@ require 'nonnative'
64
65
  Nonnative.configure do |config|
65
66
  config.version = '1.0'
66
67
  config.url = 'http://localhost:4567'
68
+ config.log = 'nonnative.log'
67
69
 
68
70
  config.process do |p|
69
71
  p.name = 'start_1'
@@ -94,6 +96,7 @@ Setup it up through configuration:
94
96
  ```yaml
95
97
  version: "1.0"
96
98
  url: http://localhost:4567
99
+ log: nonnative.log
97
100
  processes:
98
101
  -
99
102
  name: start_1
@@ -174,6 +177,7 @@ require 'nonnative'
174
177
  Nonnative.configure do |config|
175
178
  config.version = '1.0'
176
179
  config.url = 'http://localhost:4567'
180
+ config.log = 'nonnative.log'
177
181
 
178
182
  config.server do |s|
179
183
  s.name = 'server_1'
@@ -198,6 +202,7 @@ Setup it up through configuration:
198
202
  ```yaml
199
203
  version: "1.0"
200
204
  url: http://localhost:4567
205
+ log: nonnative.log
201
206
  servers:
202
207
  -
203
208
  name: server_1
@@ -259,6 +264,7 @@ require 'nonnative'
259
264
  Nonnative.configure do |config|
260
265
  config.version = '1.0'
261
266
  config.url = 'http://localhost:4567'
267
+ config.log = 'nonnative.log'
262
268
 
263
269
  config.server do |s|
264
270
  s.name = 'http_server_1'
@@ -275,6 +281,7 @@ Setup it up through configuration:
275
281
  ```yaml
276
282
  version: "1.0"
277
283
  url: http://localhost:4567
284
+ log: nonnative.log
278
285
  servers:
279
286
  -
280
287
  name: http_server_1
@@ -320,6 +327,7 @@ require 'nonnative'
320
327
  Nonnative.configure do |config|
321
328
  config.version = '1.0'
322
329
  config.url = 'http://localhost:4567'
330
+ config.log = 'nonnative.log'
323
331
 
324
332
  config.server do |s|
325
333
  s.name = 'http_server_proxy'
@@ -336,6 +344,7 @@ Setup it up through configuration:
336
344
  ```yaml
337
345
  version: "1.0"
338
346
  url: http://localhost:4567
347
+ log: nonnative.log
339
348
  servers:
340
349
  -
341
350
  name: http_server_proxy
@@ -387,6 +396,7 @@ require 'nonnative'
387
396
  Nonnative.configure do |config|
388
397
  config.version = '1.0'
389
398
  config.url = 'http://localhost:4567'
399
+ config.log = 'nonnative.log'
390
400
 
391
401
  config.server do |s|
392
402
  s.name = 'grpc_server_1'
@@ -403,6 +413,7 @@ Setup it up through configuration:
403
413
  ```yaml
404
414
  version: "1.0"
405
415
  url: http://localhost:4567
416
+ log: nonnative.log
406
417
  servers:
407
418
  -
408
419
  name: grpc_server_1
@@ -434,6 +445,7 @@ require 'nonnative'
434
445
  Nonnative.configure do |config|
435
446
  config.version = '1.0'
436
447
  config.url = 'http://localhost:4567'
448
+ config.log = 'nonnative.log'
437
449
 
438
450
  config.service do |s|
439
451
  s.name = 'postgres'
@@ -452,6 +464,7 @@ Setup it up through configuration:
452
464
  ```yaml
453
465
  version: "1.0"
454
466
  url: http://localhost:4567
467
+ log: nonnative.log
455
468
  processes:
456
469
  -
457
470
  name: postgres
@@ -487,6 +500,7 @@ require 'nonnative'
487
500
  Nonnative.configure do |config|
488
501
  config.version = '1.0'
489
502
  config.url = 'http://localhost:4567'
503
+ config.log = 'nonnative.log'
490
504
 
491
505
  config.process do |p|
492
506
  p.proxy = {
@@ -507,6 +521,7 @@ Setup it up through configuration:
507
521
  ```yaml
508
522
  version: "1.0"
509
523
  url: http://localhost:4567
524
+ log: nonnative.log
510
525
  processes:
511
526
  -
512
527
  proxy:
@@ -528,6 +543,7 @@ require 'nonnative'
528
543
  Nonnative.configure do |config|
529
544
  config.version = '1.0'
530
545
  config.url = 'http://localhost:4567'
546
+ config.log = 'nonnative.log'
531
547
 
532
548
  config.server do |s|
533
549
  s.proxy = {
@@ -548,6 +564,7 @@ Setup it up through configuration:
548
564
  ```yaml
549
565
  version: "1.0"
550
566
  url: http://localhost:4567
567
+ log: nonnative.log
551
568
  servers:
552
569
  -
553
570
  proxy:
@@ -569,6 +586,7 @@ require 'nonnative'
569
586
  Nonnative.configure do |config|
570
587
  config.version = '1.0'
571
588
  config.url = 'http://localhost:4567'
589
+ config.log = 'nonnative.log'
572
590
  config.wait = 1
573
591
 
574
592
  config.service do |s|
@@ -590,6 +608,7 @@ Setup it up through configuration:
590
608
  ```yaml
591
609
  version: "1.0"
592
610
  url: http://localhost:4567
611
+ log: nonnative.log
593
612
  wait: 1
594
613
  services:
595
614
  -
@@ -703,6 +722,7 @@ Setup it up through configuration:
703
722
  ```yaml
704
723
  version: "1.0"
705
724
  url: http://localhost:4567
725
+ log: nonnative.log
706
726
  processes:
707
727
  -
708
728
  name: go
@@ -8,13 +8,14 @@ module Nonnative
8
8
  @services = []
9
9
  end
10
10
 
11
- attr_accessor :version, :url, :processes, :servers, :services
11
+ attr_accessor :version, :url, :log, :processes, :servers, :services
12
12
 
13
13
  def load_file(path)
14
14
  cfg = Nonnative.configurations(path)
15
15
 
16
16
  self.version = cfg.version
17
17
  self.url = cfg.url
18
+ self.log = cfg.log
18
19
 
19
20
  add_processes(cfg)
20
21
  add_servers(cfg)
@@ -10,18 +10,17 @@ module Nonnative
10
10
 
11
11
  def executable(cmd, *params)
12
12
  params = params.join(' ')
13
- "#{exec} #{flags(cmd, params).join(' ')} #{cmd} #{params}".strip
13
+ "#{exec} #{flags(cmd).join(' ')} #{cmd} #{params}".strip
14
14
  end
15
15
 
16
16
  private
17
17
 
18
18
  attr_reader :tools, :exec, :output
19
19
 
20
- def flags(cmd, params)
20
+ def flags(cmd)
21
21
  suffix = SecureRandom.alphanumeric(4)
22
22
  m = File.basename(exec, File.extname(exec))
23
- p = params.gsub(/\W/, '')
24
- name = [m, cmd, p].reject(&:empty?).join('-')
23
+ name = "#{m}-#{cmd}"
25
24
  path = "#{output}/#{name}-#{suffix}"
26
25
 
27
26
  prof(path) + trace(path) + cover(path)
@@ -3,8 +3,12 @@
3
3
  module Nonnative
4
4
  class HTTPServer < Nonnative::Server
5
5
  def initialize(app, service)
6
- @server = ::Rackup::Handler.get('webrick')
7
- @app = app
6
+ log = File.open(service.log, 'a')
7
+ options = {
8
+ log_writer: Puma::LogWriter.new(log, log),
9
+ force_shutdown_after: service.timeout
10
+ }
11
+ @server = Puma::Server.new(app, Puma::Events.new, options)
8
12
 
9
13
  super(service)
10
14
  end
@@ -12,22 +16,16 @@ module Nonnative
12
16
  protected
13
17
 
14
18
  def perform_start
15
- file = File.open(service.log, 'a')
16
- logs = [
17
- [Logger.new(file), WEBrick::AccessLog::COMBINED_LOG_FORMAT]
18
- ]
19
-
20
- server.run(app, Host: proxy.host, Port: proxy.port,
21
- Logger: WEBrick::Log.new(file),
22
- AccessLog: logs)
19
+ server.add_tcp_listener proxy.host, proxy.port
20
+ server.run false
23
21
  end
24
22
 
25
23
  def perform_stop
26
- server.shutdown
24
+ server.graceful_shutdown
27
25
  end
28
26
 
29
27
  private
30
28
 
31
- attr_reader :queue, :server, :app
29
+ attr_reader :queue, :server
32
30
  end
33
31
  end
@@ -8,6 +8,8 @@ module Nonnative
8
8
  end
9
9
 
10
10
  def open?
11
+ Nonnative.logger.info "checking if port '#{process.port}' is open on host '#{process.host}'"
12
+
11
13
  timeout.perform do
12
14
  open_socket
13
15
  true
@@ -18,6 +20,8 @@ module Nonnative
18
20
  end
19
21
 
20
22
  def closed?
23
+ Nonnative.logger.info "checking if port '#{process.port}' is closed on host '#{process.host}'"
24
+
21
25
  timeout.perform do
22
26
  open_socket
23
27
  raise Nonnative::Error
@@ -59,7 +59,11 @@ module Nonnative
59
59
  environment[k] = ENV.fetch(k, nil) || environment[k]
60
60
  end
61
61
 
62
- spawn(environment, service.command.call, %i[out err] => [service.log, 'a'])
62
+ command = service.command.call
63
+
64
+ spawn(environment, command, %i[out err] => [service.log, 'a']).tap do |pid|
65
+ Nonnative.logger.info "started '#{command}' with pid '#{pid}'"
66
+ end
63
67
  end
64
68
 
65
69
  def process_exists?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.93.0'
4
+ VERSION = '1.95.0'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -8,7 +8,6 @@ require 'securerandom'
8
8
 
9
9
  require 'grpc'
10
10
  require 'sinatra'
11
- require 'rackup'
12
11
  require 'rest-client'
13
12
  require 'retriable'
14
13
  require 'concurrent'
@@ -18,7 +17,8 @@ require 'get_process_mem'
18
17
  require 'rspec-benchmark'
19
18
  require 'rspec/expectations'
20
19
  require 'rspec/wait'
21
- require 'webrick'
20
+ require 'puma'
21
+ require 'puma/server'
22
22
 
23
23
  require 'nonnative/version'
24
24
  require 'nonnative/error'
@@ -72,6 +72,10 @@ module Nonnative
72
72
  yield configuration
73
73
  end
74
74
 
75
+ def logger
76
+ @logger ||= Logger.new(configuration.log)
77
+ end
78
+
75
79
  def log_lines(path, predicate)
76
80
  File.readlines(path).select { |l| predicate.call(l) }
77
81
  end
data/nonnative.gemspec CHANGED
@@ -29,12 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'cucumber', '>= 7', '< 10'
30
30
  spec.add_dependency 'get_process_mem', '>= 1', '< 2'
31
31
  spec.add_dependency 'grpc', '>= 1', '< 2'
32
- spec.add_dependency 'rackup', '>= 2', '< 3'
32
+ spec.add_dependency 'puma', '>= 6', '< 7'
33
33
  spec.add_dependency 'rest-client', '>= 2', '< 3'
34
34
  spec.add_dependency 'retriable', '>= 3', '< 4'
35
35
  spec.add_dependency 'rspec-benchmark', '>= 0', '< 1'
36
36
  spec.add_dependency 'rspec-expectations', '>= 3', '< 4'
37
37
  spec.add_dependency 'rspec-wait', '>= 1', '< 2'
38
38
  spec.add_dependency 'sinatra', '>= 4', '< 5'
39
- spec.add_dependency 'webrick', '>= 1', '< 2'
40
39
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.93.0
4
+ version: 1.95.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Falkowski
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: concurrent-ruby
@@ -110,25 +110,25 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: '2'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rackup
113
+ name: puma
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: '2'
118
+ version: '6'
119
119
  - - "<"
120
120
  - !ruby/object:Gem::Version
121
- version: '3'
121
+ version: '7'
122
122
  type: :runtime
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '2'
128
+ version: '6'
129
129
  - - "<"
130
130
  - !ruby/object:Gem::Version
131
- version: '3'
131
+ version: '7'
132
132
  - !ruby/object:Gem::Dependency
133
133
  name: rest-client
134
134
  requirement: !ruby/object:Gem::Requirement
@@ -249,26 +249,6 @@ dependencies:
249
249
  - - "<"
250
250
  - !ruby/object:Gem::Version
251
251
  version: '5'
252
- - !ruby/object:Gem::Dependency
253
- name: webrick
254
- requirement: !ruby/object:Gem::Requirement
255
- requirements:
256
- - - ">="
257
- - !ruby/object:Gem::Version
258
- version: '1'
259
- - - "<"
260
- - !ruby/object:Gem::Version
261
- version: '2'
262
- type: :runtime
263
- prerelease: false
264
- version_requirements: !ruby/object:Gem::Requirement
265
- requirements:
266
- - - ">="
267
- - !ruby/object:Gem::Version
268
- version: '1'
269
- - - "<"
270
- - !ruby/object:Gem::Version
271
- version: '2'
272
252
  description: Allows you to keep using the power of ruby to test other systems
273
253
  email:
274
254
  - alexrfalkowski@gmail.com
@@ -277,6 +257,7 @@ extensions: []
277
257
  extra_rdoc_files: []
278
258
  files:
279
259
  - ".circleci/config.yml"
260
+ - ".codecov.yml"
280
261
  - ".config/cucumber.yml"
281
262
  - ".editorconfig"
282
263
  - ".github/dependabot.yml"
@@ -349,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
349
330
  - !ruby/object:Gem::Version
350
331
  version: '0'
351
332
  requirements: []
352
- rubygems_version: 3.6.3
333
+ rubygems_version: 3.6.8
353
334
  specification_version: 4
354
335
  summary: Allows you to keep using the power of ruby to test other systems
355
336
  test_files: []