nonnative 1.74.1 → 1.76.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: 72da73985160aeefcf6b52e7ada5b68949ddcd2d176d1c120dfefc0c7733e337
4
- data.tar.gz: cfca34b716ab4e4ead800074523567d01fcc323db83265ba0b1daba90afca718
3
+ metadata.gz: d710347f39ff60ae87871f7ccd9b346d630aa42fd24263ea9bc2081967bf2454
4
+ data.tar.gz: d2e2d24569e30a9e6dbc59f5a7cdcf3589593a08a67e1c6ddbf68ad89a0eff06
5
5
  SHA512:
6
- metadata.gz: 32eb9dcd95e99e133e0bdec549a5848561a47eef7c002523e05e862fa43360dad8f3307e1c7f22062ea2fd9c285759522ed4a6fa1fac1ce053c74af3dd74fb7e
7
- data.tar.gz: c1c5c0a2f7f0fe1ac9299e7759191b154b53db4b2bd17abf8ef6e248147cae5e16d599171ac2aeb24183b80bb36040d15bc7557b56504a9922088e3efbd9db0a
6
+ metadata.gz: 11281e87a1ddad5c227a23c26b242172c62b06a0a6624ac17dc0737b89fae21e7f792d1cddb86e48ede67def1dbd41629a8a2f96953707ffa78bf01b06c45588
7
+ data.tar.gz: 3e265dcab17dad9d4399a13fc248df015f9fe1fc1eac15cdd77c9d1e95c13a5d933c851c40aca0901e227799bfc5a881c148165007f01599eb2ef3492d13f8ae
@@ -8,3 +8,9 @@ updates:
8
8
  prefix: "fix"
9
9
  prefix-development: "build"
10
10
  include: "scope"
11
+ - package-ecosystem: "gitsubmodule"
12
+ directory: "/"
13
+ schedule:
14
+ interval: "daily"
15
+ allow:
16
+ - dependency-name: "bin"
data/.rubocop.yml CHANGED
@@ -5,6 +5,7 @@ AllCops:
5
5
  Exclude:
6
6
  - 'bin/**/*'
7
7
  - 'vendor/**/*'
8
+ - 'test/grpc/**/*'
8
9
 
9
10
  Layout/LineLength:
10
11
  Max: 150
data/CHANGELOG.md CHANGED
@@ -6,6 +6,63 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## [v1.76.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.76.0) - 2024-01-22
10
+
11
+ - [`6a42560`](https://github.com/alexfalkowski/nonnative/commit/6a42560b3983e1e1599363f3e6e07a8ffde0778f) feat(deps): update sinatra to v4.0.0 (#297)
12
+
13
+ ## [v1.75.11](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.11) - 2024-01-18
14
+
15
+ - [`b476b9e`](https://github.com/alexfalkowski/nonnative/commit/b476b9e1e8bef2bf8f89ee5cc095fe1f047f7aee) fix(deps): bump rubocop from 1.60.0 to 1.60.1 (#295)
16
+
17
+ ## [v1.75.10](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.10) - 2024-01-17
18
+
19
+ - [`231a3ce`](https://github.com/alexfalkowski/nonnative/commit/231a3ce471dda2e37e22671123e75a1964d9bf6e) fix(deps): bump concurrent-ruby from 1.2.2 to 1.2.3 (#294)
20
+
21
+ ## [v1.75.9](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.9) - 2024-01-16
22
+
23
+ - [`d9bc4ad`](https://github.com/alexfalkowski/nonnative/commit/d9bc4ad8301f76948dfd628716ce0d32ed3257fb) fix(deps): bump rubocop from 1.59.0 to 1.60.0 (#293)
24
+
25
+ ## [v1.75.8](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.8) - 2024-01-08
26
+
27
+ - [`27433cc`](https://github.com/alexfalkowski/nonnative/commit/27433ccb4e54b4ccb65090f4de4ada844d35ddb1) fix(deps): bump puma from 6.4.1 to 6.4.2 (#292)
28
+
29
+ ## [v1.75.7](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.7) - 2024-01-05
30
+
31
+ - [`b1a0719`](https://github.com/alexfalkowski/nonnative/commit/b1a0719e75c2ff92341fe8513057ffb9bb42db64) fix(deps): bump cucumber from 9.1.0 to 9.1.1 (#291)
32
+
33
+ ## [v1.75.6](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.6) - 2024-01-03
34
+
35
+ - [`fe8c5ca`](https://github.com/alexfalkowski/nonnative/commit/fe8c5cacf074a0cf48580f8d3023be5bbfcc1e66) fix(deps): bump puma from 6.4.0 to 6.4.1 (#290)
36
+
37
+ ## [v1.75.5](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.5) - 2024-01-01
38
+
39
+ - [`a620d5e`](https://github.com/alexfalkowski/nonnative/commit/a620d5e0e60a276a3529f82f9f03703fec258342) fix(deps): bump sinatra from 3.1.0 to 3.2.0 (#289)
40
+ - [`2cc4fdf`](https://github.com/alexfalkowski/nonnative/commit/2cc4fdfb714a277f240302274134704da47d6052) build(deps): update (#288)
41
+
42
+ ## [v1.75.4](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.4) - 2023-12-19
43
+
44
+ - [`6de7979`](https://github.com/alexfalkowski/nonnative/commit/6de79792069d8337037f65daffe7ff37ed1d9ffd) fix(deps): bump config from 5.0.0 to 5.1.0 (#287)
45
+
46
+ ## [v1.75.3](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.3) - 2023-12-12
47
+
48
+ - [`43ddfa2`](https://github.com/alexfalkowski/nonnative/commit/43ddfa2e9681712abb2abbaddeff3da8fbbcfc19) fix(deps): bump rubocop from 1.58.0 to 1.59.0 (#286)
49
+ - [`0adf9b8`](https://github.com/alexfalkowski/nonnative/commit/0adf9b8cb68f6f73d0976efcef06e81493c7eb2d) build(deps): bump bin from `e8ef37a` to `e6271f5` (#285)
50
+
51
+ ## [v1.75.2](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.2) - 2023-12-05
52
+
53
+ - [`295e6be`](https://github.com/alexfalkowski/nonnative/commit/295e6be3a6d31e7b12f46ab4e6bb3c64c0350e78) fix(deps): bump rubocop from 1.57.2 to 1.58.0 (#284)
54
+
55
+ ## [v1.75.1](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.1) - 2023-12-01
56
+
57
+ - [`8717eee`](https://github.com/alexfalkowski/nonnative/commit/8717eee7d0fe6c9f6c402ad8dd9c3ab7ec4d3df8) fix(deps): bump grpc from 1.59.2 to 1.60.0 (#283)
58
+ - [`0c66d5e`](https://github.com/alexfalkowski/nonnative/commit/0c66d5e34b4a1851d8778d7f037b0eb003f0a0ab) build(deps): add bin (#282)
59
+ - [`411ed2e`](https://github.com/alexfalkowski/nonnative/commit/411ed2e7755906baa350c7b6fd50716ce1e4b163) build(deps): update bin (#281)
60
+
61
+ ## [v1.75.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.75.0) - 2023-11-18
62
+
63
+ - [`dba4d0c`](https://github.com/alexfalkowski/nonnative/commit/dba4d0c4281226b818f95aee637b7433005d4aba) feat: add header (#280)
64
+ - [`9810746`](https://github.com/alexfalkowski/nonnative/commit/98107465057cebcd2c165e50fbfacebd40b7cece) build(deps): update bin (#278)
65
+
9
66
  ## [v1.74.1](https://github.com/alexfalkowski/nonnative/releases/tag/v1.74.1) - 2023-11-16
10
67
 
11
68
  - [`57a67b4`](https://github.com/alexfalkowski/nonnative/commit/57a67b4fde47cf1ab1a8299d759cffcc6cd821f6) fix(http): do not override opts (#277)
data/Gemfile CHANGED
@@ -10,4 +10,3 @@ gemspec
10
10
  gem 'bundler'
11
11
  gem 'coveralls_reborn'
12
12
  gem 'rubocop'
13
- gem 'solargraph'
data/Gemfile.lock CHANGED
@@ -1,42 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.74.1)
5
- concurrent-ruby (~> 1.0, >= 1.0.5)
4
+ nonnative (1.76.0)
5
+ concurrent-ruby (>= 1, < 2)
6
+ config (>= 5, < 6)
6
7
  cucumber (>= 7, < 10)
7
- get_process_mem (~> 0.2.1)
8
+ get_process_mem (>= 0, < 1)
8
9
  grpc (>= 1, < 2)
9
- puma (~> 6.0)
10
- rest-client (~> 2.1)
11
- rspec-benchmark (~> 0.6.0)
12
- rspec-expectations (~> 3.9, >= 3.9.2)
13
- sinatra (>= 2.0.8.1, < 4)
10
+ puma (>= 6, < 7)
11
+ rest-client (>= 2, < 3)
12
+ rspec-benchmark (>= 0, < 1)
13
+ rspec-expectations (>= 3, < 4)
14
+ sinatra (>= 2, < 5)
14
15
 
15
16
  GEM
16
17
  remote: https://rubygems.org/
17
18
  specs:
18
19
  ast (2.4.2)
19
- backport (1.2.0)
20
- benchmark (0.3.0)
20
+ base64 (0.2.0)
21
21
  benchmark-malloc (0.2.0)
22
22
  benchmark-perf (0.6.0)
23
23
  benchmark-trend (0.4.0)
24
+ bigdecimal (3.1.6)
24
25
  builder (3.2.4)
25
- concurrent-ruby (1.2.2)
26
+ concurrent-ruby (1.2.3)
27
+ config (5.1.0)
28
+ deep_merge (~> 1.2, >= 1.2.1)
29
+ dry-validation (~> 1.0, >= 1.0.0)
26
30
  coveralls_reborn (0.28.0)
27
31
  simplecov (~> 0.22.0)
28
32
  term-ansicolor (~> 1.7)
29
33
  thor (~> 1.2)
30
34
  tins (~> 1.32)
31
- cucumber (9.1.0)
35
+ cucumber (9.1.1)
32
36
  builder (~> 3.2, >= 3.2.4)
33
37
  cucumber-ci-environment (~> 9.2, >= 9.2.0)
34
38
  cucumber-core (~> 12.0)
35
39
  cucumber-cucumber-expressions (~> 17.0)
36
- cucumber-gherkin (>= 24, < 27)
37
- cucumber-html-formatter (~> 20.4, >= 20.4.0)
38
- cucumber-messages (>= 19, < 23)
39
- diff-lcs (~> 1.5, >= 1.5.0)
40
+ cucumber-gherkin (> 24, < 27)
41
+ cucumber-html-formatter (> 20.3, < 22)
42
+ cucumber-messages (> 19, < 25)
43
+ diff-lcs (~> 1.5)
40
44
  mini_mime (~> 1.1, >= 1.1.5)
41
45
  multi_test (~> 1.1, >= 1.1.0)
42
46
  sys-uname (~> 1.2, >= 1.2.3)
@@ -45,71 +49,101 @@ GEM
45
49
  cucumber-gherkin (>= 25, < 27)
46
50
  cucumber-messages (>= 20, < 23)
47
51
  cucumber-tag-expressions (~> 5.0, >= 5.0.4)
48
- cucumber-cucumber-expressions (17.0.0)
52
+ cucumber-cucumber-expressions (17.0.1)
49
53
  cucumber-gherkin (26.2.0)
50
54
  cucumber-messages (>= 19.1.4, < 22.1)
51
- cucumber-html-formatter (20.4.0)
52
- cucumber-messages (>= 18.0, < 22.1)
55
+ cucumber-html-formatter (21.2.0)
56
+ cucumber-messages (> 19, < 25)
53
57
  cucumber-messages (22.0.0)
54
58
  cucumber-tag-expressions (5.0.6)
59
+ deep_merge (1.2.2)
55
60
  diff-lcs (1.5.0)
56
61
  docile (1.4.0)
57
- domain_name (0.6.20231109)
58
- e2mmap (0.1.0)
62
+ domain_name (0.6.20240107)
63
+ dry-configurable (1.1.0)
64
+ dry-core (~> 1.0, < 2)
65
+ zeitwerk (~> 2.6)
66
+ dry-core (1.0.1)
67
+ concurrent-ruby (~> 1.0)
68
+ zeitwerk (~> 2.6)
69
+ dry-inflector (1.0.0)
70
+ dry-initializer (3.1.1)
71
+ dry-logic (1.5.0)
72
+ concurrent-ruby (~> 1.0)
73
+ dry-core (~> 1.0, < 2)
74
+ zeitwerk (~> 2.6)
75
+ dry-schema (1.13.3)
76
+ concurrent-ruby (~> 1.0)
77
+ dry-configurable (~> 1.0, >= 1.0.1)
78
+ dry-core (~> 1.0, < 2)
79
+ dry-initializer (~> 3.0)
80
+ dry-logic (>= 1.4, < 2)
81
+ dry-types (>= 1.7, < 2)
82
+ zeitwerk (~> 2.6)
83
+ dry-types (1.7.2)
84
+ bigdecimal (~> 3.0)
85
+ concurrent-ruby (~> 1.0)
86
+ dry-core (~> 1.0)
87
+ dry-inflector (~> 1.0)
88
+ dry-logic (~> 1.4)
89
+ zeitwerk (~> 2.6)
90
+ dry-validation (1.10.0)
91
+ concurrent-ruby (~> 1.0)
92
+ dry-core (~> 1.0, < 2)
93
+ dry-initializer (~> 3.0)
94
+ dry-schema (>= 1.12, < 2)
95
+ zeitwerk (~> 2.6)
59
96
  ffi (1.16.3)
60
97
  get_process_mem (0.2.7)
61
98
  ffi (~> 1.0)
62
- google-protobuf (3.25.0-x86_64-darwin)
63
- googleapis-common-protos-types (1.10.0)
99
+ google-protobuf (3.25.2-arm64-darwin)
100
+ google-protobuf (3.25.2-x86_64-darwin)
101
+ google-protobuf (3.25.2-x86_64-linux)
102
+ googleapis-common-protos-types (1.11.0)
64
103
  google-protobuf (~> 3.18)
65
- grpc (1.59.2-x86_64-darwin)
66
- google-protobuf (~> 3.24)
104
+ grpc (1.60.0-arm64-darwin)
105
+ google-protobuf (~> 3.25)
106
+ googleapis-common-protos-types (~> 1.0)
107
+ grpc (1.60.0-x86_64-darwin)
108
+ google-protobuf (~> 3.25)
109
+ googleapis-common-protos-types (~> 1.0)
110
+ grpc (1.60.0-x86_64-linux)
111
+ google-protobuf (~> 3.25)
67
112
  googleapis-common-protos-types (~> 1.0)
68
113
  http-accept (1.7.0)
69
114
  http-cookie (1.0.5)
70
115
  domain_name (~> 0.5)
71
- jaro_winkler (1.5.6)
72
- json (2.6.3)
73
- kramdown (2.4.0)
74
- rexml
75
- kramdown-parser-gfm (1.1.0)
76
- kramdown (~> 2.0)
116
+ json (2.7.1)
77
117
  language_server-protocol (3.17.0.3)
78
- mime-types (3.5.1)
118
+ mime-types (3.5.2)
79
119
  mime-types-data (~> 3.2015)
80
- mime-types-data (3.2023.1003)
120
+ mime-types-data (3.2023.1205)
81
121
  mini_mime (1.1.5)
82
122
  multi_test (1.1.0)
83
123
  mustermann (3.0.0)
84
124
  ruby2_keywords (~> 0.0.1)
85
125
  netrc (0.11.0)
86
- nio4r (2.5.9)
87
- nokogiri (1.15.4-arm64-darwin)
88
- racc (~> 1.4)
89
- nokogiri (1.15.4-x86_64-darwin)
90
- racc (~> 1.4)
91
- nokogiri (1.15.4-x86_64-linux)
92
- racc (~> 1.4)
93
- parallel (1.23.0)
94
- parser (3.2.2.4)
126
+ nio4r (2.7.0)
127
+ parallel (1.24.0)
128
+ parser (3.3.0.5)
95
129
  ast (~> 2.4.1)
96
130
  racc
97
- puma (6.4.0)
131
+ puma (6.4.2)
98
132
  nio4r (~> 2.0)
99
133
  racc (1.7.3)
100
- rack (2.2.8)
101
- rack-protection (3.1.0)
102
- rack (~> 2.2, >= 2.2.4)
134
+ rack (3.0.8)
135
+ rack-protection (4.0.0)
136
+ base64 (>= 0.1.0)
137
+ rack (>= 3.0.0, < 4)
138
+ rack-session (2.0.0)
139
+ rack (>= 3.0.0)
103
140
  rainbow (3.1.1)
104
- rbs (2.8.4)
105
- regexp_parser (2.8.2)
141
+ regexp_parser (2.9.0)
106
142
  rest-client (2.1.0)
107
143
  http-accept (>= 1.7.0, < 2.0)
108
144
  http-cookie (>= 1.0.2, < 2.0)
109
145
  mime-types (>= 1.16, < 4.0)
110
146
  netrc (~> 0.8)
111
- reverse_markdown (2.1.1)
112
- nokogiri
113
147
  rexml (3.2.6)
114
148
  rspec (3.12.0)
115
149
  rspec-core (~> 3.12.0)
@@ -129,15 +163,15 @@ GEM
129
163
  diff-lcs (>= 1.2.0, < 2.0)
130
164
  rspec-support (~> 3.12.0)
131
165
  rspec-support (3.12.1)
132
- rubocop (1.57.2)
166
+ rubocop (1.60.1)
133
167
  json (~> 2.3)
134
168
  language_server-protocol (>= 3.17.0)
135
169
  parallel (~> 1.10)
136
- parser (>= 3.2.2.4)
170
+ parser (>= 3.3.0.2)
137
171
  rainbow (>= 2.2.2, < 4.0)
138
172
  regexp_parser (>= 1.8, < 3.0)
139
173
  rexml (>= 3.2.5, < 4.0)
140
- rubocop-ast (>= 1.28.1, < 2.0)
174
+ rubocop-ast (>= 1.30.0, < 2.0)
141
175
  ruby-progressbar (~> 1.7)
142
176
  unicode-display_width (>= 2.4.0, < 3.0)
143
177
  rubocop-ast (1.30.0)
@@ -150,27 +184,12 @@ GEM
150
184
  simplecov_json_formatter (~> 0.1)
151
185
  simplecov-html (0.12.3)
152
186
  simplecov_json_formatter (0.1.4)
153
- sinatra (3.1.0)
187
+ sinatra (4.0.0)
154
188
  mustermann (~> 3.0)
155
- rack (~> 2.2, >= 2.2.4)
156
- rack-protection (= 3.1.0)
157
- tilt (~> 2.0)
158
- solargraph (0.49.0)
159
- backport (~> 1.2)
160
- benchmark
161
- bundler (~> 2.0)
162
- diff-lcs (~> 1.4)
163
- e2mmap
164
- jaro_winkler (~> 1.5)
165
- kramdown (~> 2.3)
166
- kramdown-parser-gfm (~> 1.1)
167
- parser (~> 3.0)
168
- rbs (~> 2.0)
169
- reverse_markdown (~> 2.0)
170
- rubocop (~> 1.38)
171
- thor (~> 1.0)
189
+ rack (>= 3.0.0, < 4)
190
+ rack-protection (= 4.0.0)
191
+ rack-session (>= 2.0.0, < 3)
172
192
  tilt (~> 2.0)
173
- yard (~> 0.9, >= 0.9.24)
174
193
  sync (0.5.0)
175
194
  sys-uname (1.2.3)
176
195
  ffi (~> 1.1)
@@ -181,7 +200,7 @@ GEM
181
200
  tins (1.32.1)
182
201
  sync
183
202
  unicode-display_width (2.5.0)
184
- yard (0.9.34)
203
+ zeitwerk (2.6.12)
185
204
 
186
205
  PLATFORMS
187
206
  arm64-darwin-22
@@ -193,7 +212,6 @@ DEPENDENCIES
193
212
  coveralls_reborn
194
213
  nonnative!
195
214
  rubocop
196
- solargraph
197
215
 
198
216
  BUNDLED WITH
199
217
  2.3.9
@@ -11,11 +11,11 @@ module Nonnative
11
11
  attr_accessor :processes, :servers, :services
12
12
 
13
13
  def load_file(path)
14
- file = YAML.load_file(path)
14
+ cfg = Nonnative.configurations(path)
15
15
 
16
- add_processes(file)
17
- add_servers(file)
18
- add_services(file)
16
+ add_processes(cfg)
17
+ add_servers(cfg)
18
+ add_services(cfg)
19
19
  end
20
20
 
21
21
  def process
@@ -48,59 +48,59 @@ module Nonnative
48
48
 
49
49
  private
50
50
 
51
- def add_processes(file)
52
- processes = file['processes'] || []
51
+ def add_processes(cfg)
52
+ processes = cfg.processes || []
53
53
  processes.each do |fd|
54
54
  process do |d|
55
- d.name = fd['name']
55
+ d.name = fd.name
56
56
  d.command = command(fd)
57
- d.timeout = fd['timeout']
58
- d.port = fd['port']
59
- d.log = fd['log']
60
- d.signal = fd['signal']
61
- d.environment = fd['environment']
57
+ d.timeout = fd.timeout
58
+ d.port = fd.port
59
+ d.log = fd.log
60
+ d.signal = fd.signal
61
+ d.environment = fd.environment
62
62
 
63
- proxy d, fd['proxy']
63
+ proxy d, fd.proxy
64
64
  end
65
65
  end
66
66
  end
67
67
 
68
68
  def command(process)
69
- go = process['go']
69
+ go = process.go
70
70
  if go
71
- params = go['parameters'] || []
72
- tools = go['tools'] || []
71
+ params = go.parameters || []
72
+ tools = go.tools || []
73
73
 
74
- -> { Nonnative.go_executable(tools, go['output'], go['executable'], go['command'], *params) }
74
+ -> { Nonnative.go_executable(tools, go.output, go.executable, go.command, *params) }
75
75
  else
76
- -> { process['command'] }
76
+ -> { process.command }
77
77
  end
78
78
  end
79
79
 
80
- def add_servers(file)
81
- servers = file['servers'] || []
80
+ def add_servers(cfg)
81
+ servers = cfg.servers || []
82
82
  servers.each do |fd|
83
83
  server do |s|
84
- s.name = fd['name']
85
- s.klass = Object.const_get(fd['class'])
86
- s.timeout = fd['timeout']
87
- s.port = fd['port']
88
- s.log = fd['log']
84
+ s.name = fd.name
85
+ s.klass = Object.const_get(fd.class)
86
+ s.timeout = fd.timeout
87
+ s.port = fd.port
88
+ s.log = fd.log
89
89
 
90
- proxy s, fd['proxy']
90
+ proxy s, fd.proxy
91
91
  end
92
92
  end
93
93
  end
94
94
 
95
- def add_services(file)
96
- services = file['services'] || []
95
+ def add_services(cfg)
96
+ services = cfg.services || []
97
97
  services.each do |fd|
98
98
  service do |s|
99
- s.name = fd['name']
100
- s.host = fd['host'] if fd['host']
101
- s.port = fd['port']
99
+ s.name = fd.name
100
+ s.host = fd.host if fd.host
101
+ s.port = fd.port
102
102
 
103
- proxy s, fd['proxy']
103
+ proxy s, fd.proxy
104
104
  end
105
105
  end
106
106
  end
@@ -109,13 +109,13 @@ module Nonnative
109
109
  return unless proxy
110
110
 
111
111
  p = {
112
- kind: proxy['kind'],
113
- port: proxy['port'],
114
- log: proxy['log'],
115
- options: proxy['options']
112
+ kind: proxy.kind,
113
+ port: proxy.port,
114
+ log: proxy.log,
115
+ options: proxy.options
116
116
  }
117
117
 
118
- p[:host] = proxy['host'] if proxy['host']
118
+ p[:host] = proxy.host if proxy.host
119
119
 
120
120
  runner.proxy = p
121
121
  end
@@ -6,7 +6,7 @@ module Nonnative
6
6
  duration = proxy.options[:delay] || 2
7
7
  sleep duration
8
8
 
9
- super socket
9
+ super(socket)
10
10
  end
11
11
  end
12
12
  end
@@ -8,7 +8,7 @@ module Nonnative
8
8
  @mutex = Mutex.new
9
9
  @state = :none
10
10
 
11
- super service
11
+ super(service)
12
12
  end
13
13
 
14
14
  def start
@@ -11,7 +11,7 @@ module Nonnative
11
11
  @logger ||= Logger.new(service.log)
12
12
  end
13
13
 
14
- super service
14
+ super(service)
15
15
  end
16
16
 
17
17
  protected
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nonnative
4
+ class Header
5
+ class << self
6
+ def http_user_agent(user_agent)
7
+ { user_agent: }
8
+ end
9
+
10
+ def grpc_user_agent(user_agent)
11
+ { 'grpc.primary_user_agent' => user_agent }
12
+ end
13
+
14
+ def auth_basic(credentials)
15
+ { authorization: "Basic #{Base64.strict_encode64(credentials)}" }
16
+ end
17
+
18
+ def auth_bearer(token)
19
+ { authorization: "Bearer #{token}" }
20
+ end
21
+ end
22
+ end
23
+ end
@@ -7,7 +7,7 @@ module Nonnative
7
7
  options = { log_writer: Puma::LogWriter.new(log, log) }
8
8
  @server = Puma::Server.new(app, Puma::Events.new, options)
9
9
 
10
- super service
10
+ super(service)
11
11
  end
12
12
 
13
13
  protected
@@ -5,7 +5,7 @@ module Nonnative
5
5
  def write(socket, data)
6
6
  data = data.chars.shuffle.join
7
7
 
8
- super socket, data
8
+ super(socket, data)
9
9
  end
10
10
  end
11
11
  end
@@ -3,7 +3,7 @@
3
3
  module Nonnative
4
4
  class Process < Runner
5
5
  def initialize(service)
6
- super service
6
+ super(service)
7
7
 
8
8
  @timeout = Nonnative::Timeout.new(service.timeout)
9
9
  end
@@ -52,7 +52,7 @@ module Nonnative
52
52
  end
53
53
 
54
54
  def process_spawn
55
- environment = service.environment || {}
55
+ environment = service.environment.to_h
56
56
  environment = environment.transform_keys(&:to_s).transform_values(&:to_s)
57
57
 
58
58
  environment.each_key do |k|
@@ -3,7 +3,7 @@
3
3
  module Nonnative
4
4
  class Server < Runner
5
5
  def initialize(service)
6
- super service
6
+ super(service)
7
7
 
8
8
  @timeout = Nonnative::Timeout.new(service.timeout)
9
9
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.74.1'
4
+ VERSION = '1.76.0'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -12,6 +12,7 @@ require 'rest-client'
12
12
  require 'puma'
13
13
  require 'puma/server'
14
14
  require 'concurrent'
15
+ require 'config'
15
16
  require 'cucumber'
16
17
  require 'get_process_mem'
17
18
  require 'rspec-benchmark'
@@ -49,11 +50,16 @@ require 'nonnative/invalid_data_socket_pair'
49
50
  require 'nonnative/socket_pair_factory'
50
51
  require 'nonnative/go_command'
51
52
  require 'nonnative/cucumber'
53
+ require 'nonnative/header'
52
54
 
53
55
  module Nonnative
54
56
  class << self
55
57
  attr_reader :pool
56
58
 
59
+ def configurations(*files)
60
+ Config.load_files(files)
61
+ end
62
+
57
63
  def log_lines(path, predicate)
58
64
  File.readlines(path).select { |l| predicate.call(l) }
59
65
  end
data/nonnative.gemspec CHANGED
@@ -24,13 +24,14 @@ Gem::Specification.new do |spec|
24
24
  spec.required_ruby_version = ['>= 3.2.0', '< 4.0.0']
25
25
  spec.metadata['rubygems_mfa_required'] = 'true'
26
26
 
27
- spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
27
+ spec.add_dependency 'concurrent-ruby', '>= 1', '< 2'
28
+ spec.add_dependency 'config', '>= 5', '< 6'
28
29
  spec.add_dependency 'cucumber', '>= 7', '< 10'
29
- spec.add_dependency 'get_process_mem', '~> 0.2.1'
30
- spec.add_dependency 'grpc', ['>= 1', '< 2']
31
- spec.add_dependency 'puma', '~> 6.0'
32
- spec.add_dependency 'rest-client', '~> 2.1'
33
- spec.add_dependency 'rspec-benchmark', '~> 0.6.0'
34
- spec.add_dependency 'rspec-expectations', '~> 3.9', '>= 3.9.2'
35
- spec.add_dependency 'sinatra', '>= 2.0.8.1', '< 4'
30
+ spec.add_dependency 'get_process_mem', '>= 0', '< 1'
31
+ spec.add_dependency 'grpc', '>= 1', '< 2'
32
+ spec.add_dependency 'puma', '>= 6', '< 7'
33
+ spec.add_dependency 'rest-client', '>= 2', '< 3'
34
+ spec.add_dependency 'rspec-benchmark', '>= 0', '< 1'
35
+ spec.add_dependency 'rspec-expectations', '>= 3', '< 4'
36
+ spec.add_dependency 'sinatra', '>= 2', '< 5'
36
37
  end
metadata CHANGED
@@ -1,35 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.74.1
4
+ version: 1.76.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Falkowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-16 00:00:00.000000000 Z
11
+ date: 2024-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 1.0.5
19
+ version: '1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: config
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '5'
40
+ - - "<"
28
41
  - !ruby/object:Gem::Version
29
- version: '1.0'
42
+ version: '6'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
30
47
  - - ">="
31
48
  - !ruby/object:Gem::Version
32
- version: 1.0.5
49
+ version: '5'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '6'
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: cucumber
35
55
  requirement: !ruby/object:Gem::Requirement
@@ -54,16 +74,22 @@ dependencies:
54
74
  name: get_process_mem
55
75
  requirement: !ruby/object:Gem::Requirement
56
76
  requirements:
57
- - - "~>"
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ - - "<"
58
81
  - !ruby/object:Gem::Version
59
- version: 0.2.1
82
+ version: '1'
60
83
  type: :runtime
61
84
  prerelease: false
62
85
  version_requirements: !ruby/object:Gem::Requirement
63
86
  requirements:
64
- - - "~>"
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ - - "<"
65
91
  - !ruby/object:Gem::Version
66
- version: 0.2.1
92
+ version: '1'
67
93
  - !ruby/object:Gem::Dependency
68
94
  name: grpc
69
95
  requirement: !ruby/object:Gem::Requirement
@@ -88,84 +114,102 @@ dependencies:
88
114
  name: puma
89
115
  requirement: !ruby/object:Gem::Requirement
90
116
  requirements:
91
- - - "~>"
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '6'
120
+ - - "<"
92
121
  - !ruby/object:Gem::Version
93
- version: '6.0'
122
+ version: '7'
94
123
  type: :runtime
95
124
  prerelease: false
96
125
  version_requirements: !ruby/object:Gem::Requirement
97
126
  requirements:
98
- - - "~>"
127
+ - - ">="
99
128
  - !ruby/object:Gem::Version
100
- version: '6.0'
129
+ version: '6'
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: '7'
101
133
  - !ruby/object:Gem::Dependency
102
134
  name: rest-client
103
135
  requirement: !ruby/object:Gem::Requirement
104
136
  requirements:
105
- - - "~>"
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '2'
140
+ - - "<"
106
141
  - !ruby/object:Gem::Version
107
- version: '2.1'
142
+ version: '3'
108
143
  type: :runtime
109
144
  prerelease: false
110
145
  version_requirements: !ruby/object:Gem::Requirement
111
146
  requirements:
112
- - - "~>"
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '2'
150
+ - - "<"
113
151
  - !ruby/object:Gem::Version
114
- version: '2.1'
152
+ version: '3'
115
153
  - !ruby/object:Gem::Dependency
116
154
  name: rspec-benchmark
117
155
  requirement: !ruby/object:Gem::Requirement
118
156
  requirements:
119
- - - "~>"
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - - "<"
120
161
  - !ruby/object:Gem::Version
121
- version: 0.6.0
162
+ version: '1'
122
163
  type: :runtime
123
164
  prerelease: false
124
165
  version_requirements: !ruby/object:Gem::Requirement
125
166
  requirements:
126
- - - "~>"
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ - - "<"
127
171
  - !ruby/object:Gem::Version
128
- version: 0.6.0
172
+ version: '1'
129
173
  - !ruby/object:Gem::Dependency
130
174
  name: rspec-expectations
131
175
  requirement: !ruby/object:Gem::Requirement
132
176
  requirements:
133
- - - "~>"
134
- - !ruby/object:Gem::Version
135
- version: '3.9'
136
177
  - - ">="
137
178
  - !ruby/object:Gem::Version
138
- version: 3.9.2
179
+ version: '3'
180
+ - - "<"
181
+ - !ruby/object:Gem::Version
182
+ version: '4'
139
183
  type: :runtime
140
184
  prerelease: false
141
185
  version_requirements: !ruby/object:Gem::Requirement
142
186
  requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '3.9'
146
187
  - - ">="
147
188
  - !ruby/object:Gem::Version
148
- version: 3.9.2
189
+ version: '3'
190
+ - - "<"
191
+ - !ruby/object:Gem::Version
192
+ version: '4'
149
193
  - !ruby/object:Gem::Dependency
150
194
  name: sinatra
151
195
  requirement: !ruby/object:Gem::Requirement
152
196
  requirements:
153
197
  - - ">="
154
198
  - !ruby/object:Gem::Version
155
- version: 2.0.8.1
199
+ version: '2'
156
200
  - - "<"
157
201
  - !ruby/object:Gem::Version
158
- version: '4'
202
+ version: '5'
159
203
  type: :runtime
160
204
  prerelease: false
161
205
  version_requirements: !ruby/object:Gem::Requirement
162
206
  requirements:
163
207
  - - ">="
164
208
  - !ruby/object:Gem::Version
165
- version: 2.0.8.1
209
+ version: '2'
166
210
  - - "<"
167
211
  - !ruby/object:Gem::Version
168
- version: '4'
212
+ version: '5'
169
213
  description: Allows you to keep using the power of ruby to test other systems
170
214
  email:
171
215
  - alexrfalkowski@gmail.com
@@ -202,6 +246,7 @@ files:
202
246
  - lib/nonnative/fault_injection_proxy.rb
203
247
  - lib/nonnative/go_command.rb
204
248
  - lib/nonnative/grpc_server.rb
249
+ - lib/nonnative/header.rb
205
250
  - lib/nonnative/http_client.rb
206
251
  - lib/nonnative/http_server.rb
207
252
  - lib/nonnative/invalid_data_socket_pair.rb