nonnative 1.26.0 → 1.31.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: 12206912ca29ab82602d7d07fdc15f5b42124e890572d463ad1c4358c7de9f08
4
- data.tar.gz: ee0393650b33d8a3c5b1d31019f717a3fb680f8872171c7fea1ac4892e186ad5
3
+ metadata.gz: f9da622a2bc452f1fb3fde00697e415939676e86effb17c6a8a461bcabed826e
4
+ data.tar.gz: 93d0f12cb69c8281f5ec04c01d081f4a5993b090e99f6fa1c0f3d3cc318de6d1
5
5
  SHA512:
6
- metadata.gz: 9bbd95d62ddf01d04fd7f6bc4a783276e65dcc7775fbc1844316ee5f12ce150cf06cb3536c77e98f2b600fa5126fd2ed6e2946466559a53a4444ea4e1448b62f
7
- data.tar.gz: 4417fe28fb3f291a7ac81bab44cbf398fc897acbf815397bd58aba7a72548c0320faba7aeab15778f7037c05b9fb84e2429cbd0a19ec6daba2d0c4f9f646318e
6
+ metadata.gz: 4b68bea5ebd563bf547c3db4e4929c91a3003dd5560e595f6b75cb70f61eb9334f5c6d3513d005b11a280ab5b89423628bf08cb71058e6a71ec71eee37285532
7
+ data.tar.gz: 7cd3daed412bffe1e55c4ba4c1dbf03afb3e65812c11a34720ca3cee18fe4800f842598716c44582da8928347454e77206f668975f76eb43055e18215f228d38
@@ -5,7 +5,7 @@ orbs:
5
5
  jobs:
6
6
  build:
7
7
  docker:
8
- - image: circleci/ruby:2.6
8
+ - image: circleci/ruby:2.7
9
9
  environment:
10
10
  BUNDLE_JOBS: "3"
11
11
  BUNDLE_PATH: vendor/bundle
@@ -1,6 +1,7 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 2.7
3
3
  DisplayCopNames: true
4
+ NewCops: enable
4
5
 
5
6
  Layout/LineLength:
6
7
  Max: 120
@@ -17,53 +18,5 @@ Metrics/AbcSize:
17
18
  Style/Documentation:
18
19
  Enabled: false
19
20
 
20
- Lint/RaiseException:
21
- Enabled: true
22
-
23
- Style/HashEachMethods:
24
- Enabled: true
25
-
26
- Style/HashTransformKeys:
27
- Enabled: true
28
-
29
- Style/HashTransformValues:
30
- Enabled: true
31
-
32
- Lint/StructNewOverride:
33
- Enabled: true
34
-
35
- Layout/SpaceAroundMethodCallOperator:
36
- Enabled: true
37
-
38
- Style/ExponentialNotation:
39
- Enabled: true
40
-
41
- Layout/EmptyLinesAroundAttributeAccessor:
42
- Enabled: true
43
-
44
- Style/SlicingWithRange:
45
- Enabled: true
46
-
47
- Lint/DeprecatedOpenSSLConstant:
48
- Enabled: true
49
-
50
- Lint/MixedRegexpCaptureTypes:
51
- Enabled: true
52
-
53
- Style/RedundantRegexpCharacterClass:
54
- Enabled: true
55
-
56
- Style/RedundantRegexpEscape:
57
- Enabled: true
58
-
59
- Style/RedundantFetchBlock:
60
- Enabled: true
61
-
62
- Style/AccessorGrouping:
63
- Enabled: true
64
-
65
- Style/BisectedAttrAccessor:
66
- Enabled: true
67
-
68
- Style/RedundantAssignment:
69
- Enabled: true
21
+ Lint/HashCompareByIdentity:
22
+ Enabled: false
@@ -1 +1 @@
1
- ruby-2.6.6
1
+ ruby-2.7.1
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.26.0)
4
+ nonnative (1.31.0)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.5)
6
- cucumber (>= 4, < 5)
6
+ cucumber (>= 5, < 6)
7
7
  grpc (>= 1, < 2)
8
- puma (~> 4.3, >= 4.3.3)
8
+ puma (~> 5.0)
9
9
  rest-client (~> 2.1)
10
10
  rspec-benchmark (~> 0.6.0)
11
11
  rspec-expectations (~> 3.9, >= 3.9.2)
@@ -14,108 +14,98 @@ PATH
14
14
  GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
- activesupport (6.0.3.2)
17
+ activesupport (6.0.3.4)
18
18
  concurrent-ruby (~> 1.0, >= 1.0.2)
19
19
  i18n (>= 0.7, < 2)
20
20
  minitest (~> 5.1)
21
21
  tzinfo (~> 1.1)
22
22
  zeitwerk (~> 2.2, >= 2.2.2)
23
23
  ast (2.4.1)
24
- backport (1.1.2)
25
- benchmark (0.1.0)
26
24
  benchmark-malloc (0.2.0)
27
25
  benchmark-perf (0.6.0)
28
26
  benchmark-trend (0.4.0)
29
27
  builder (3.2.4)
30
- concurrent-ruby (1.1.6)
31
- cucumber (4.1.0)
32
- builder (~> 3.2, >= 3.2.3)
33
- cucumber-core (~> 7.1, >= 7.1.0)
34
- cucumber-create-meta (~> 1.0.0, >= 1.0.0)
35
- cucumber-cucumber-expressions (~> 10.1, >= 10.1.0)
36
- cucumber-gherkin (~> 14.0, >= 14.0.1)
37
- cucumber-html-formatter (~> 7.0, >= 7.0.0)
38
- cucumber-messages (~> 12.2, >= 12.2.0)
39
- cucumber-wire (~> 3.1, >= 3.1.0)
40
- diff-lcs (~> 1.3, >= 1.3, < 1.4)
28
+ concurrent-ruby (1.1.7)
29
+ cucumber (5.2.0)
30
+ builder (~> 3.2, >= 3.2.4)
31
+ cucumber-core (~> 8.0, >= 8.0.1)
32
+ cucumber-create-meta (~> 2.0, >= 2.0.2)
33
+ cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
34
+ cucumber-gherkin (~> 15.0, >= 15.0.2)
35
+ cucumber-html-formatter (~> 9.0, >= 9.0.0)
36
+ cucumber-messages (~> 13.1, >= 13.1.0)
37
+ cucumber-wire (~> 4.0, >= 4.0.1)
38
+ diff-lcs (~> 1.4, >= 1.4.4)
41
39
  multi_test (~> 0.1, >= 0.1.2)
42
- sys-uname (~> 1.0, >= 1.0.2)
43
- cucumber-core (7.1.0)
44
- cucumber-gherkin (~> 14.0, >= 14.0.1)
45
- cucumber-messages (~> 12.2, >= 12.2.0)
40
+ sys-uname (~> 1.2, >= 1.2.1)
41
+ cucumber-core (8.0.1)
42
+ cucumber-gherkin (~> 15.0, >= 15.0.2)
43
+ cucumber-messages (~> 13.0, >= 13.0.1)
46
44
  cucumber-tag-expressions (~> 2.0, >= 2.0.4)
47
- cucumber-create-meta (1.0.0)
48
- cucumber-messages (~> 12.2, >= 12.2.0)
45
+ cucumber-create-meta (2.0.2)
46
+ cucumber-messages (~> 13.0, >= 13.0.1)
49
47
  sys-uname (~> 1.2, >= 1.2.1)
50
- cucumber-cucumber-expressions (10.2.1)
51
- cucumber-gherkin (14.0.1)
52
- cucumber-messages (~> 12.2, >= 12.2.0)
53
- cucumber-html-formatter (7.0.0)
54
- cucumber-messages (~> 12.2, >= 12.2.0)
55
- cucumber-messages (12.2.0)
48
+ cucumber-cucumber-expressions (10.3.0)
49
+ cucumber-gherkin (15.0.2)
50
+ cucumber-messages (~> 13.0, >= 13.0.1)
51
+ cucumber-html-formatter (9.0.0)
52
+ cucumber-messages (~> 13.0, >= 13.0.1)
53
+ cucumber-messages (13.1.0)
56
54
  protobuf-cucumber (~> 3.10, >= 3.10.8)
57
55
  cucumber-tag-expressions (2.0.4)
58
- cucumber-wire (3.1.0)
59
- cucumber-core (~> 7.1, >= 7.1.0)
60
- cucumber-cucumber-expressions (~> 10.1, >= 10.1.0)
61
- cucumber-messages (~> 12.2, >= 12.2.0)
62
- diff-lcs (1.3)
56
+ cucumber-wire (4.0.1)
57
+ cucumber-core (~> 8.0, >= 8.0.1)
58
+ cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
59
+ cucumber-messages (~> 13.0, >= 13.0.1)
60
+ diff-lcs (1.4.4)
63
61
  docile (1.3.2)
64
62
  domain_name (0.5.20190701)
65
63
  unf (>= 0.0.5, < 1.0.0)
66
- e2mmap (0.1.0)
67
64
  ffi (1.13.1)
68
- google-protobuf (3.12.2)
65
+ google-protobuf (3.13.0)
69
66
  googleapis-common-protos-types (1.0.5)
70
67
  google-protobuf (~> 3.11)
71
- grpc (1.30.1)
72
- google-protobuf (~> 3.12)
68
+ grpc (1.32.0)
69
+ google-protobuf (~> 3.13)
73
70
  googleapis-common-protos-types (~> 1.0)
74
- grpc-tools (1.30.1)
71
+ grpc-tools (1.32.0)
75
72
  http-accept (1.7.0)
76
73
  http-cookie (1.0.3)
77
74
  domain_name (~> 0.5)
78
- i18n (1.8.3)
75
+ i18n (1.8.5)
79
76
  concurrent-ruby (~> 1.0)
80
- jaro_winkler (1.5.4)
81
- json (2.3.0)
82
- maruku (0.7.3)
77
+ json (2.3.1)
83
78
  middleware (0.1.0)
84
79
  mime-types (3.3.1)
85
80
  mime-types-data (~> 3.2015)
86
81
  mime-types-data (3.2020.0512)
87
- mini_portile2 (2.4.0)
88
- minitest (5.14.1)
82
+ minitest (5.14.2)
89
83
  multi_test (0.1.2)
90
84
  mustermann (1.1.1)
91
85
  ruby2_keywords (~> 0.0.1)
92
86
  netrc (0.11.0)
93
- nio4r (2.5.2)
94
- nokogiri (1.10.10)
95
- mini_portile2 (~> 2.4.0)
87
+ nio4r (2.5.4)
96
88
  parallel (1.19.2)
97
- parser (2.7.1.4)
89
+ parser (2.7.2.0)
98
90
  ast (~> 2.4.1)
99
91
  protobuf-cucumber (3.10.8)
100
92
  activesupport (>= 3.2)
101
93
  middleware
102
94
  thor
103
95
  thread_safe
104
- puma (4.3.5)
96
+ puma (5.0.2)
105
97
  nio4r (~> 2.0)
106
98
  rack (2.2.3)
107
- rack-protection (2.0.8.1)
99
+ rack-protection (2.1.0)
108
100
  rack
109
101
  rainbow (3.0.0)
110
102
  rake (13.0.1)
111
- regexp_parser (1.7.1)
103
+ regexp_parser (1.8.2)
112
104
  rest-client (2.1.0)
113
105
  http-accept (>= 1.7.0, < 2.0)
114
106
  http-cookie (>= 1.0.2, < 2.0)
115
107
  mime-types (>= 1.16, < 4.0)
116
108
  netrc (~> 0.8)
117
- reverse_markdown (2.0.0)
118
- nokogiri
119
109
  rexml (3.2.4)
120
110
  rspec (3.9.0)
121
111
  rspec-core (~> 3.9.0)
@@ -126,7 +116,7 @@ GEM
126
116
  benchmark-perf (~> 0.6)
127
117
  benchmark-trend (~> 0.4)
128
118
  rspec (>= 3.0)
129
- rspec-core (3.9.2)
119
+ rspec-core (3.9.3)
130
120
  rspec-support (~> 3.9.3)
131
121
  rspec-expectations (3.9.2)
132
122
  diff-lcs (>= 1.2.0, < 2.0)
@@ -135,17 +125,17 @@ GEM
135
125
  diff-lcs (>= 1.2.0, < 2.0)
136
126
  rspec-support (~> 3.9.0)
137
127
  rspec-support (3.9.3)
138
- rubocop (0.87.1)
128
+ rubocop (1.0.0)
139
129
  parallel (~> 1.10)
140
- parser (>= 2.7.1.1)
130
+ parser (>= 2.7.1.5)
141
131
  rainbow (>= 2.2.2, < 4.0)
142
- regexp_parser (>= 1.7)
132
+ regexp_parser (>= 1.8)
143
133
  rexml
144
- rubocop-ast (>= 0.1.0, < 1.0)
134
+ rubocop-ast (>= 0.6.0)
145
135
  ruby-progressbar (~> 1.7)
146
136
  unicode-display_width (>= 1.4.0, < 2.0)
147
- rubocop-ast (0.1.0)
148
- parser (>= 2.7.0.1)
137
+ rubocop-ast (1.0.0)
138
+ parser (>= 2.7.1.5)
149
139
  ruby-progressbar (1.10.1)
150
140
  ruby2_keywords (0.0.2)
151
141
  simplecov (0.17.1)
@@ -153,25 +143,11 @@ GEM
153
143
  json (>= 1.8, < 3)
154
144
  simplecov-html (~> 0.10.0)
155
145
  simplecov-html (0.10.2)
156
- sinatra (2.0.8.1)
146
+ sinatra (2.1.0)
157
147
  mustermann (~> 1.0)
158
- rack (~> 2.0)
159
- rack-protection (= 2.0.8.1)
160
- tilt (~> 2.0)
161
- solargraph (0.39.11)
162
- backport (~> 1.1)
163
- benchmark
164
- bundler (>= 1.17.2)
165
- e2mmap
166
- jaro_winkler (~> 1.5)
167
- maruku (~> 0.7, >= 0.7.3)
168
- nokogiri (~> 1.9, >= 1.9.1)
169
- parser (~> 2.3)
170
- reverse_markdown (>= 1.0.5, < 3)
171
- rubocop (~> 0.52)
172
- thor (~> 1.0)
148
+ rack (~> 2.2)
149
+ rack-protection (= 2.1.0)
173
150
  tilt (~> 2.0)
174
- yard (~> 0.9, >= 0.9.24)
175
151
  sys-uname (1.2.1)
176
152
  ffi (>= 1.0.0)
177
153
  thor (1.0.1)
@@ -183,8 +159,7 @@ GEM
183
159
  unf_ext
184
160
  unf_ext (0.0.7.7)
185
161
  unicode-display_width (1.7.0)
186
- yard (0.9.25)
187
- zeitwerk (2.3.1)
162
+ zeitwerk (2.4.0)
188
163
 
189
164
  PLATFORMS
190
165
  ruby
@@ -194,9 +169,8 @@ DEPENDENCIES
194
169
  grpc-tools (>= 1, < 2)
195
170
  nonnative!
196
171
  rake (~> 13.0, >= 13.0.1)
197
- rubocop (~> 0.87.1)
172
+ rubocop (~> 1.0)
198
173
  simplecov (~> 0.17.1)
199
- solargraph (~> 0.39.11)
200
174
 
201
175
  BUNDLED WITH
202
176
  2.1.4
data/Makefile CHANGED
@@ -13,7 +13,7 @@ analysis:
13
13
  bundle exec rubocop
14
14
 
15
15
  cleanup-analysis:
16
- bundle exec rubocop -a
16
+ bundle exec rubocop -A
17
17
 
18
18
  cleanup-logs:
19
19
  rm -rf features/logs/*.log
data/README.md CHANGED
@@ -37,10 +37,19 @@ Configure nonnative with the following:
37
37
  - A timeout value.
38
38
  - Port to verify.
39
39
  - The class for servers.
40
- - The file you want STDOUT to be logged to for processes.
40
+ - The log for servers/processes
41
41
  - The strategy for processes/servers.
42
- * Startup will start the process once.
43
- * Before will hook into cucumbers Before and After.
42
+
43
+ ### Strategy
44
+
45
+ The strategy can be one of the following values:
46
+ - startup - will start the process once.
47
+ - before - will hook into cucumbers Before and After.
48
+ - manual - do this manually
49
+
50
+ This can be overridden by the following environment variables:
51
+ - NONNATIVE_STRATEGY - Set this to override what is set in the config.
52
+ - NONNATIVE_TIMEOUT - Set this (in seconds, e.g 5) to override what is set in the config.
44
53
 
45
54
  ### Processes
46
55
 
@@ -50,12 +59,12 @@ Setup it up programmatically:
50
59
  require 'nonnative'
51
60
 
52
61
  Nonnative.configure do |config|
53
- config.strategy = :startup or :before or :manual
62
+ config.strategy = :startup
54
63
 
55
64
  config.process do |d|
56
65
  d.name = 'start_1'
57
66
  d.command = 'features/support/bin/start 12_321'
58
- d.timeout = 0.5
67
+ d.timeout = config.strategy.timeout
59
68
  d.port = 12_321
60
69
  d.log = 'features/logs/12_321.log'
61
70
  d.signal = 'INT' # Possible values are described in Signal.list.keys
@@ -364,3 +373,39 @@ server = Nonnative.pool.server_by_name(name)
364
373
  server.proxy.close_all # To use close_all.
365
374
  server.proxy.reset # To reset it back to a good state.
366
375
  ```
376
+
377
+
378
+ ### Go
379
+
380
+ As we love using go as a language for services we have added support to start binaries with defined parameters. This expects that you build your services in the format of `command sub_command --params`
381
+
382
+ To get this to work you will need to create a `main_test.go` file with these contents:
383
+
384
+ ```go
385
+ // +build features
386
+
387
+ package main
388
+
389
+ import (
390
+ "testing"
391
+ )
392
+
393
+ // TestFeatures is a hack that allows us to figure out what the coverage is during
394
+ // integration tests. I would not recommend that you use a binary built using
395
+ // this hack outside of a test suite.
396
+ func TestFeatures(t *testing.T) {
397
+ main()
398
+ }
399
+ ```
400
+
401
+ Then to compile this binary you will need to do the following:
402
+
403
+ ```sh
404
+ go test -mod vendor -c -tags features -covermode=count -o your_binary -coverpkg=./... github.com/your_location
405
+ ```
406
+
407
+ Then to get an executable you do the following:
408
+
409
+ ```ruby
410
+ Nonnative::GoCommand.new('your_binary', 'reports').executable('sub_command', '--config config.yaml')
411
+ ```
@@ -2,8 +2,8 @@
2
2
 
3
3
  require 'socket'
4
4
  require 'timeout'
5
- require 'thwait'
6
5
  require 'yaml'
6
+ require 'open3'
7
7
 
8
8
  require 'grpc'
9
9
  require 'sinatra'
@@ -29,7 +29,6 @@ require 'nonnative/server'
29
29
  require 'nonnative/http_client'
30
30
  require 'nonnative/http_server'
31
31
  require 'nonnative/grpc_server'
32
- require 'nonnative/grpc_server'
33
32
  require 'nonnative/observability'
34
33
  require 'nonnative/proxy_factory'
35
34
  require 'nonnative/proxy'
@@ -40,6 +39,8 @@ require 'nonnative/close_all_socket_pair'
40
39
  require 'nonnative/delay_socket_pair'
41
40
  require 'nonnative/invalid_data_socket_pair'
42
41
  require 'nonnative/socket_pair_factory'
42
+ require 'nonnative/strategy'
43
+ require 'nonnative/go_command'
43
44
 
44
45
  module Nonnative
45
46
  class << self
@@ -40,28 +40,35 @@ module Nonnative
40
40
  s.port = fd['port']
41
41
  s.log = fd['log']
42
42
 
43
- proxy = fd['proxy']
44
-
45
- if proxy
46
- s.proxy = {
47
- type: proxy['type'],
48
- port: proxy['port'],
49
- log: proxy['log'],
50
- options: proxy['options']
51
- }
52
- end
43
+ proxy s, fd['proxy']
53
44
  end
54
45
  end
55
46
  end
47
+
48
+ def proxy(server, proxy)
49
+ return unless proxy
50
+
51
+ server.proxy = {
52
+ type: proxy['type'],
53
+ port: proxy['port'],
54
+ log: proxy['log'],
55
+ options: proxy['options']
56
+ }
57
+ end
56
58
  end
57
59
 
58
60
  def initialize
59
- self.strategy = :before
60
- self.processes = []
61
- self.servers = []
61
+ @strategy = Strategy.new
62
+ @processes = []
63
+ @servers = []
62
64
  end
63
65
 
64
- attr_accessor :strategy, :processes, :servers
66
+ attr_accessor :processes, :servers
67
+ attr_reader :strategy
68
+
69
+ def strategy=(value)
70
+ @strategy = Strategy.new(value)
71
+ end
65
72
 
66
73
  def process
67
74
  process = Nonnative::ConfigurationProcess.new
@@ -3,7 +3,7 @@
3
3
  module Nonnative
4
4
  class DelaySocketPair < SocketPair
5
5
  def read(socket)
6
- duration = proxy.options.dig(:delay) || 2
6
+ duration = proxy.options[:delay] || 2
7
7
  sleep duration
8
8
 
9
9
  super socket
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nonnative
4
+ class GoCommand
5
+ def initialize(main, output)
6
+ @main = main
7
+ @output = output
8
+ end
9
+
10
+ def executable(cmd, *params)
11
+ params = params.join(' ')
12
+ "#{main} #{flags(cmd, params).join(' ')} #{cmd} #{params}"
13
+ end
14
+
15
+ def execute(cmd, *params)
16
+ Open3.popen3(executable(cmd, params)) do |_stdin, stdout, stderr, wait_thr|
17
+ return stdout.read, stderr.read, wait_thr.value
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ attr_reader :main, :output
24
+
25
+ def flags(cmd, params)
26
+ m = File.basename(main, File.extname(main))
27
+ p = params.gsub(/\W/, '')
28
+ path = "#{output}/#{m}-#{cmd}-#{p}"
29
+
30
+ [
31
+ "-test.cpuprofile=#{path}-cpu.prof",
32
+ "-test.memprofile=#{path}-mem.prof",
33
+ "-test.blockprofile=#{path}-block.prof",
34
+ "-test.mutexprofile=#{path}-mutex.prof",
35
+ "-test.coverprofile=#{path}.cov",
36
+ "-test.trace=#{path}-trace.out"
37
+ ]
38
+ end
39
+ end
40
+ end
@@ -46,8 +46,6 @@ module Nonnative
46
46
  threads << Thread.new { port.send(port_method) }
47
47
  end
48
48
 
49
- ThreadsWait.all_waits(*threads)
50
-
51
49
  ports = threads.map(&:value)
52
50
 
53
51
  yield_results(types, pids, ports, &block)
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nonnative
4
+ class Strategy
5
+ def initialize(strategy = 'before', timeout = 5)
6
+ @strategy = strategy
7
+ @timeout = timeout
8
+ end
9
+
10
+ def timeout
11
+ (env_timeout || @timeout).to_i
12
+ end
13
+
14
+ def to_s
15
+ (env_strategy || @strategy).to_s
16
+ end
17
+
18
+ private
19
+
20
+ def env_strategy
21
+ @env_strategy ||= ENV['NONNATIVE_STRATEGY']
22
+ end
23
+
24
+ def env_timeout
25
+ @env_timeout ||= ENV['NONNATIVE_TIMEOUT']
26
+ end
27
+ end
28
+ end
@@ -6,10 +6,8 @@ module Nonnative
6
6
  @time = time
7
7
  end
8
8
 
9
- def perform
10
- ::Timeout.timeout(time) do
11
- yield
12
- end
9
+ def perform(&block)
10
+ ::Timeout.timeout(time, &block)
13
11
  rescue ::Timeout::Error
14
12
  false
15
13
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.26.0'
4
+ VERSION = '1.31.0'
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
5
6
  require 'nonnative/version'
6
7
 
7
8
  Gem::Specification.new do |spec|
@@ -14,20 +15,18 @@ Gem::Specification.new do |spec|
14
15
  spec.description = spec.summary
15
16
  spec.homepage = 'https://github.com/alexfalkowski/nonnative'
16
17
  spec.license = 'Unlicense'
17
-
18
- # Specify which files should be added to the gem when it is released.
19
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
18
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
20
  end
23
21
  spec.bindir = 'exe'
24
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
23
  spec.require_paths = ['lib']
24
+ spec.required_ruby_version = ['>= 2.7.0', '< 2.8.0']
26
25
 
27
26
  spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
28
- spec.add_dependency 'cucumber', ['>= 4', '< 5']
27
+ spec.add_dependency 'cucumber', ['>= 5', '< 6']
29
28
  spec.add_dependency 'grpc', ['>= 1', '< 2']
30
- spec.add_dependency 'puma', '~> 4.3', '>= 4.3.3'
29
+ spec.add_dependency 'puma', '~> 5.0'
31
30
  spec.add_dependency 'rest-client', '~> 2.1'
32
31
  spec.add_dependency 'rspec-benchmark', '~> 0.6.0'
33
32
  spec.add_dependency 'rspec-expectations', '~> 3.9', '>= 3.9.2'
@@ -36,7 +35,6 @@ Gem::Specification.new do |spec|
36
35
  spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
37
36
  spec.add_development_dependency 'grpc-tools', ['>= 1', '< 2']
38
37
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
39
- spec.add_development_dependency 'rubocop', '~> 0.87.1'
38
+ spec.add_development_dependency 'rubocop', '~> 1.0'
40
39
  spec.add_development_dependency 'simplecov', '~> 0.17.1'
41
- spec.add_development_dependency 'solargraph', '~> 0.39.11'
42
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.26.0
4
+ version: 1.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Falkowski
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-12 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '4'
39
+ version: '5'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '5'
42
+ version: '6'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '4'
49
+ version: '5'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '5'
52
+ version: '6'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: grpc
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -76,20 +76,14 @@ dependencies:
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '4.3'
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 4.3.3
79
+ version: '5.0'
83
80
  type: :runtime
84
81
  prerelease: false
85
82
  version_requirements: !ruby/object:Gem::Requirement
86
83
  requirements:
87
84
  - - "~>"
88
85
  - !ruby/object:Gem::Version
89
- version: '4.3'
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: 4.3.3
86
+ version: '5.0'
93
87
  - !ruby/object:Gem::Dependency
94
88
  name: rest-client
95
89
  requirement: !ruby/object:Gem::Requirement
@@ -224,14 +218,14 @@ dependencies:
224
218
  requirements:
225
219
  - - "~>"
226
220
  - !ruby/object:Gem::Version
227
- version: 0.87.1
221
+ version: '1.0'
228
222
  type: :development
229
223
  prerelease: false
230
224
  version_requirements: !ruby/object:Gem::Requirement
231
225
  requirements:
232
226
  - - "~>"
233
227
  - !ruby/object:Gem::Version
234
- version: 0.87.1
228
+ version: '1.0'
235
229
  - !ruby/object:Gem::Dependency
236
230
  name: simplecov
237
231
  requirement: !ruby/object:Gem::Requirement
@@ -246,20 +240,6 @@ dependencies:
246
240
  - - "~>"
247
241
  - !ruby/object:Gem::Version
248
242
  version: 0.17.1
249
- - !ruby/object:Gem::Dependency
250
- name: solargraph
251
- requirement: !ruby/object:Gem::Requirement
252
- requirements:
253
- - - "~>"
254
- - !ruby/object:Gem::Version
255
- version: 0.39.11
256
- type: :development
257
- prerelease: false
258
- version_requirements: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - "~>"
261
- - !ruby/object:Gem::Version
262
- version: 0.39.11
263
243
  description: Allows you to keep using the power of ruby to test other systems
264
244
  email:
265
245
  - alexrfalkowski@gmail.com
@@ -278,7 +258,6 @@ files:
278
258
  - LICENSE
279
259
  - Makefile
280
260
  - README.md
281
- - Rakefile
282
261
  - bin/console
283
262
  - bin/setup
284
263
  - lib/nonnative.rb
@@ -292,6 +271,7 @@ files:
292
271
  - lib/nonnative/delay_socket_pair.rb
293
272
  - lib/nonnative/error.rb
294
273
  - lib/nonnative/fault_injection_proxy.rb
274
+ - lib/nonnative/go_command.rb
295
275
  - lib/nonnative/grpc_server.rb
296
276
  - lib/nonnative/http_client.rb
297
277
  - lib/nonnative/http_server.rb
@@ -310,6 +290,7 @@ files:
310
290
  - lib/nonnative/start_error.rb
311
291
  - lib/nonnative/startup.rb
312
292
  - lib/nonnative/stop_error.rb
293
+ - lib/nonnative/strategy.rb
313
294
  - lib/nonnative/timeout.rb
314
295
  - lib/nonnative/version.rb
315
296
  - nonnative.gemspec
@@ -318,7 +299,7 @@ homepage: https://github.com/alexfalkowski/nonnative
318
299
  licenses:
319
300
  - Unlicense
320
301
  metadata: {}
321
- post_install_message:
302
+ post_install_message:
322
303
  rdoc_options: []
323
304
  require_paths:
324
305
  - lib
@@ -326,15 +307,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
326
307
  requirements:
327
308
  - - ">="
328
309
  - !ruby/object:Gem::Version
329
- version: '0'
310
+ version: 2.7.0
311
+ - - "<"
312
+ - !ruby/object:Gem::Version
313
+ version: 2.8.0
330
314
  required_rubygems_version: !ruby/object:Gem::Requirement
331
315
  requirements:
332
316
  - - ">="
333
317
  - !ruby/object:Gem::Version
334
318
  version: '0'
335
319
  requirements: []
336
- rubygems_version: 3.0.8
337
- signing_key:
320
+ rubygems_version: 3.1.2
321
+ signing_key:
338
322
  specification_version: 4
339
323
  summary: Allows you to keep using the power of ruby to test other systems
340
324
  test_files: []
data/Rakefile DELETED
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- task default: :spec