nonnative 1.74.1 → 1.76.0

Sign up to get free protection for your applications and to get access to all the features.
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