nonnative 1.17.0 → 1.22.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: 403a1eb266052f9e819db50e879e1d7b4e653a9a04125bace330b662886fdb37
4
- data.tar.gz: 23e036bdbdf4eff6bee01f3dd397493a44ef9f4de8dd067b2d0c307d5f17c76f
3
+ metadata.gz: 5a6ee4ae9e2629fcae27b82ea0f4db839d6c131ab1687ed286b33eb80fc5a41a
4
+ data.tar.gz: 53192dec8216ce696fe9774f77b98904a6f13b041cbbe131bbaacaafc45cffda
5
5
  SHA512:
6
- metadata.gz: 9245df6a91015c6d4c9177167c142edd217adcd0f939723e1d927ee58eb8cdcf02b396020e10a4c0af108efca726fa908a1bb5adeead7c1a857272705f74a28f
7
- data.tar.gz: 956ffbdbf3b4599ec2a69386adf36a4c85800456ba5a1cd9caa61414f7a81bddce9d6c36683e8a22f225fc860fae4e3b632a6624d6dbac505a3571a7248e137d
6
+ metadata.gz: 6da13105ad656ebfe2f5bc5c1ba643e12776b2747da9453c3e1da62729475e2490d67942482b7f0a9de480ccebd245fe798cb57cf5db4ee6ef483781b8657be4
7
+ data.tar.gz: 787afe51f6eed81281d439f91824c795a96f4673712302983977c976df949e23eeeee58a3d3c5e71829f4c69b6b8931531488f7bf6a7674c3156322b81d10195
@@ -6,10 +6,10 @@ Layout/LineLength:
6
6
  Max: 120
7
7
 
8
8
  Metrics/MethodLength:
9
- Max: 15
9
+ Max: 20
10
10
 
11
11
  Metrics/BlockLength:
12
- Max: 35
12
+ Max: 60
13
13
 
14
14
  Metrics/AbcSize:
15
15
  Max: 20
@@ -58,3 +58,12 @@ Style/RedundantRegexpEscape:
58
58
 
59
59
  Style/RedundantFetchBlock:
60
60
  Enabled: true
61
+
62
+ Style/AccessorGrouping:
63
+ Enabled: true
64
+
65
+ Style/BisectedAttrAccessor:
66
+ Enabled: true
67
+
68
+ Style/RedundantAssignment:
69
+ Enabled: true
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.17.0)
5
- cucumber (~> 3.1, >= 3.1.2)
6
- grpc (~> 1.28)
4
+ nonnative (1.22.0)
5
+ concurrent-ruby (~> 1.0, >= 1.0.5)
6
+ cucumber (>= 4, < 5)
7
+ grpc (>= 1, < 2)
7
8
  puma (~> 4.3, >= 4.3.3)
8
9
  rest-client (~> 2.1)
9
10
  rspec-benchmark (~> 0.6.0)
@@ -13,54 +14,64 @@ PATH
13
14
  GEM
14
15
  remote: https://rubygems.org/
15
16
  specs:
16
- amatch (0.4.0)
17
- mize
18
- tins (~> 1.0)
17
+ activesupport (6.0.3.2)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 0.7, < 2)
20
+ minitest (~> 5.1)
21
+ tzinfo (~> 1.1)
22
+ zeitwerk (~> 2.2, >= 2.2.2)
19
23
  ast (2.4.1)
20
24
  backport (1.1.2)
21
- backports (3.18.1)
22
25
  benchmark (0.1.0)
23
26
  benchmark-malloc (0.2.0)
24
27
  benchmark-perf (0.6.0)
25
28
  benchmark-trend (0.4.0)
26
29
  builder (3.2.4)
27
- chutney (2.0.3.1)
28
- amatch (~> 0.4.0)
29
- gherkin (~> 5.1.0)
30
- i18n (~> 1.8.2)
31
- pastel (~> 0.7)
32
- tty-pie (~> 0.3)
33
30
  concurrent-ruby (1.1.6)
34
- cucumber (3.2.0)
35
- builder (>= 2.1.2)
36
- cucumber-core (~> 3.2.0)
37
- cucumber-expressions (~> 6.0.1)
38
- cucumber-wire (~> 0.0.1)
39
- diff-lcs (~> 1.3)
40
- gherkin (~> 5.1.0)
41
- multi_json (>= 1.7.5, < 2.0)
42
- multi_test (>= 0.1.2)
43
- cucumber-core (3.2.1)
44
- backports (>= 3.8.0)
45
- cucumber-tag_expressions (~> 1.1.0)
46
- gherkin (~> 5.0)
47
- cucumber-expressions (6.0.1)
48
- cucumber-tag_expressions (1.1.1)
49
- cucumber-wire (0.0.1)
50
- diff-lcs (1.4.4)
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)
41
+ 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)
46
+ cucumber-tag-expressions (~> 2.0, >= 2.0.4)
47
+ cucumber-create-meta (1.0.0)
48
+ cucumber-messages (~> 12.2, >= 12.2.0)
49
+ 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)
56
+ protobuf-cucumber (~> 3.10, >= 3.10.8)
57
+ 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)
51
63
  docile (1.3.2)
52
64
  domain_name (0.5.20190701)
53
65
  unf (>= 0.0.5, < 1.0.0)
54
66
  e2mmap (0.1.0)
55
- equatable (0.6.1)
56
- gherkin (5.1.0)
67
+ ffi (1.13.1)
57
68
  google-protobuf (3.12.2)
58
69
  googleapis-common-protos-types (1.0.5)
59
70
  google-protobuf (~> 3.11)
60
- grpc (1.28.0)
61
- google-protobuf (~> 3.11)
71
+ grpc (1.30.1)
72
+ google-protobuf (~> 3.12)
62
73
  googleapis-common-protos-types (~> 1.0)
63
- grpc-tools (1.28.0)
74
+ grpc-tools (1.30.1)
64
75
  http-accept (1.7.0)
65
76
  http-cookie (1.0.3)
66
77
  domain_name (~> 0.5)
@@ -69,28 +80,27 @@ GEM
69
80
  jaro_winkler (1.5.4)
70
81
  json (2.3.0)
71
82
  maruku (0.7.3)
83
+ middleware (0.1.0)
72
84
  mime-types (3.3.1)
73
85
  mime-types-data (~> 3.2015)
74
86
  mime-types-data (3.2020.0512)
75
87
  mini_portile2 (2.4.0)
76
- mize (0.4.0)
77
- protocol (~> 2.0)
78
- multi_json (1.14.1)
88
+ minitest (5.14.1)
79
89
  multi_test (0.1.2)
80
90
  mustermann (1.1.1)
81
91
  ruby2_keywords (~> 0.0.1)
82
92
  netrc (0.11.0)
83
93
  nio4r (2.5.2)
84
- nokogiri (1.10.9)
94
+ nokogiri (1.10.10)
85
95
  mini_portile2 (~> 2.4.0)
86
96
  parallel (1.19.2)
87
97
  parser (2.7.1.4)
88
98
  ast (~> 2.4.1)
89
- pastel (0.7.4)
90
- equatable (~> 0.6)
91
- tty-color (~> 0.5)
92
- protocol (2.0.0)
93
- ruby_parser (~> 3.0)
99
+ protobuf-cucumber (3.10.8)
100
+ activesupport (>= 3.2)
101
+ middleware
102
+ thor
103
+ thread_safe
94
104
  puma (4.3.5)
95
105
  nio4r (~> 2.0)
96
106
  rack (2.2.3)
@@ -125,22 +135,19 @@ GEM
125
135
  diff-lcs (>= 1.2.0, < 2.0)
126
136
  rspec-support (~> 3.9.0)
127
137
  rspec-support (3.9.3)
128
- rubocop (0.86.0)
138
+ rubocop (0.87.1)
129
139
  parallel (~> 1.10)
130
- parser (>= 2.7.0.1)
140
+ parser (>= 2.7.1.1)
131
141
  rainbow (>= 2.2.2, < 4.0)
132
142
  regexp_parser (>= 1.7)
133
143
  rexml
134
- rubocop-ast (>= 0.0.3, < 1.0)
144
+ rubocop-ast (>= 0.1.0, < 1.0)
135
145
  ruby-progressbar (~> 1.7)
136
146
  unicode-display_width (>= 1.4.0, < 2.0)
137
147
  rubocop-ast (0.1.0)
138
148
  parser (>= 2.7.0.1)
139
149
  ruby-progressbar (1.10.1)
140
150
  ruby2_keywords (0.0.2)
141
- ruby_parser (3.14.2)
142
- sexp_processor (~> 4.9)
143
- sexp_processor (4.15.0)
144
151
  simplecov (0.17.1)
145
152
  docile (~> 1.1)
146
153
  json (>= 1.8, < 3)
@@ -165,34 +172,31 @@ GEM
165
172
  thor (~> 1.0)
166
173
  tilt (~> 2.0)
167
174
  yard (~> 0.9, >= 0.9.24)
168
- sync (0.5.0)
175
+ sys-uname (1.2.1)
176
+ ffi (>= 1.0.0)
169
177
  thor (1.0.1)
178
+ thread_safe (0.3.6)
170
179
  tilt (2.0.10)
171
- tins (1.25.0)
172
- sync
173
- tty-color (0.5.1)
174
- tty-cursor (0.7.1)
175
- tty-pie (0.3.0)
176
- pastel (~> 0.7.3)
177
- tty-cursor (~> 0.7)
180
+ tzinfo (1.2.7)
181
+ thread_safe (~> 0.1)
178
182
  unf (0.1.4)
179
183
  unf_ext
180
184
  unf_ext (0.0.7.7)
181
185
  unicode-display_width (1.7.0)
182
186
  yard (0.9.25)
187
+ zeitwerk (2.3.1)
183
188
 
184
189
  PLATFORMS
185
190
  ruby
186
191
 
187
192
  DEPENDENCIES
188
193
  bundler (~> 2.1, >= 2.1.4)
189
- chutney (~> 2.0, >= 2.0.3.1)
190
- grpc-tools (~> 1.28)
194
+ grpc-tools (>= 1, < 2)
191
195
  nonnative!
192
196
  rake (~> 13.0, >= 13.0.1)
193
- rubocop (~> 0.86.0)
197
+ rubocop (~> 0.87.1)
194
198
  simplecov (~> 0.17.1)
195
- solargraph (~> 0.39.7)
199
+ solargraph (~> 0.39.11)
196
200
 
197
201
  BUNDLED WITH
198
202
  2.1.4
data/Makefile CHANGED
@@ -7,11 +7,10 @@ outdated-dependencies:
7
7
  bundle outdated --only-explicit
8
8
 
9
9
  features: clean
10
- bundle exec cucumber --profile report $(feature)
10
+ bundle exec cucumber --profile report --fail-fast $(feature)
11
11
 
12
12
  analysis:
13
13
  bundle exec rubocop
14
- bundle exec chutney
15
14
 
16
15
  cleanup-analysis:
17
16
  bundle exec rubocop -a
data/README.md CHANGED
@@ -309,8 +309,10 @@ Nonnative.configure do |config|
309
309
  config.strategy = :manual
310
310
 
311
311
  config.server do |d|
312
- d.proxy.type = 'chaos'
313
- d.proxy.port = 20_000
312
+ d.proxy = {
313
+ type: 'chaos',
314
+ port: 20_000
315
+ }
314
316
  end
315
317
  end
316
318
  ```
@@ -10,6 +10,7 @@ require 'sinatra'
10
10
  require 'rest-client'
11
11
  require 'puma'
12
12
  require 'puma/server'
13
+ require 'concurrent'
13
14
 
14
15
  require 'nonnative/version'
15
16
  require 'nonnative/error'
@@ -35,10 +36,10 @@ require 'nonnative/proxy'
35
36
  require 'nonnative/no_proxy'
36
37
  require 'nonnative/chaos_proxy'
37
38
 
38
- Thread.abort_on_exception = true
39
-
40
39
  module Nonnative
41
40
  class << self
41
+ attr_reader :pool
42
+
42
43
  def load_configuration(path)
43
44
  @configuration ||= Nonnative::Configuration.load_file(path) # rubocop:disable Naming/MemoizedInstanceVariableName
44
45
  end
@@ -2,6 +2,14 @@
2
2
 
3
3
  module Nonnative
4
4
  class ChaosProxy < Nonnative::Proxy
5
+ def initialize(service)
6
+ @connections = Concurrent::Hash.new
7
+ @mutex = Mutex.new
8
+ @state = :none
9
+
10
+ super service
11
+ end
12
+
5
13
  def start
6
14
  @tcp_server = ::TCPServer.new('0.0.0.0', service.port)
7
15
  @thread = Thread.new { perform_start }
@@ -12,21 +20,32 @@ module Nonnative
12
20
  tcp_server.close
13
21
  end
14
22
 
23
+ def close_all
24
+ apply_state :close_all
25
+ end
26
+
27
+ def reset
28
+ apply_state :none
29
+ end
30
+
15
31
  def port
16
32
  service.proxy.port
17
33
  end
18
34
 
19
35
  private
20
36
 
21
- attr_reader :tcp_server, :thread
37
+ attr_reader :tcp_server, :thread, :connections, :mutex, :state
22
38
 
23
39
  def perform_start
24
40
  loop do
25
- Thread.start(tcp_server.accept) { |local_socket| connect(local_socket) }
41
+ thread = Thread.start(tcp_server.accept) { |local_socket| connect(local_socket) }
42
+ connections[thread.object_id] = thread
26
43
  end
27
44
  end
28
45
 
29
46
  def connect(local_socket)
47
+ return local_socket.close if state?(:close_all)
48
+
30
49
  remote_socket = create_remote_socket
31
50
  return unless remote_socket
32
51
 
@@ -36,9 +55,12 @@ module Nonnative
36
55
  break if write(ready, local_socket, remote_socket)
37
56
  break if write(ready, remote_socket, local_socket)
38
57
  end
58
+ rescue Errno::ECONNRESET
59
+ # Just ignore it.
39
60
  ensure
40
61
  local_socket.close
41
62
  remote_socket&.close
63
+ connections.delete(Thread.current.object_id)
42
64
  end
43
65
 
44
66
  def create_remote_socket
@@ -60,5 +82,13 @@ module Nonnative
60
82
 
61
83
  false
62
84
  end
85
+
86
+ def apply_state(state)
87
+ mutex.synchronize { @state = state }
88
+ end
89
+
90
+ def state?(state)
91
+ mutex.synchronize { @state == state }
92
+ end
63
93
  end
64
94
  end
@@ -42,8 +42,10 @@ module Nonnative
42
42
  proxy = fd['proxy']
43
43
 
44
44
  if proxy
45
- s.proxy.type = proxy['type']
46
- s.proxy.port = proxy['port']
45
+ s.proxy = {
46
+ type: proxy['type'],
47
+ port: proxy['port']
48
+ }
47
49
  end
48
50
  end
49
51
  end
@@ -56,9 +58,7 @@ module Nonnative
56
58
  self.servers = []
57
59
  end
58
60
 
59
- attr_accessor :strategy
60
- attr_accessor :processes
61
- attr_accessor :servers
61
+ attr_accessor :strategy, :processes, :servers
62
62
 
63
63
  def process
64
64
  process = Nonnative::ConfigurationProcess.new
@@ -2,11 +2,6 @@
2
2
 
3
3
  module Nonnative
4
4
  class ConfigurationProcess
5
- attr_accessor :name
6
- attr_accessor :command
7
- attr_accessor :timeout
8
- attr_accessor :port
9
- attr_accessor :file
10
- attr_accessor :signal
5
+ attr_accessor :name, :command, :timeout, :port, :file, :signal
11
6
  end
12
7
  end
@@ -2,8 +2,7 @@
2
2
 
3
3
  module Nonnative
4
4
  class ConfigurationProxy
5
- attr_accessor :type
6
- attr_accessor :port
5
+ attr_accessor :type, :port
7
6
 
8
7
  def initialize
9
8
  self.type = 'none'
@@ -2,14 +2,17 @@
2
2
 
3
3
  module Nonnative
4
4
  class ConfigurationServer
5
- attr_accessor :name
6
- attr_accessor :klass
7
- attr_accessor :timeout
8
- attr_accessor :port
9
- attr_accessor :proxy
5
+ attr_accessor :name, :klass, :timeout, :port
6
+
7
+ attr_reader :proxy
10
8
 
11
9
  def initialize
12
- self.proxy = Nonnative::ConfigurationProxy.new
10
+ @proxy = Nonnative::ConfigurationProxy.new
11
+ end
12
+
13
+ def proxy=(value)
14
+ proxy.type = value[:type]
15
+ proxy.port = value[:port]
13
16
  end
14
17
  end
15
18
  end
@@ -7,13 +7,16 @@ module Nonnative
7
7
  end
8
8
 
9
9
  def start(&block)
10
- all = processes + servers
11
- process_all(all, :start, :open?, &block)
10
+ [servers, processes].each { |t| process(t, :start, :open?, &block) }
12
11
  end
13
12
 
14
13
  def stop(&block)
15
- all = processes + servers
16
- process_all(all, :stop, :closed?, &block)
14
+ [processes, servers].each { |t| process(t, :stop, :closed?, &block) }
15
+ end
16
+
17
+ def server_by_name(name)
18
+ index = configuration.servers.find_index { |s| s.name == name }
19
+ servers[index].first
17
20
  end
18
21
 
19
22
  private
@@ -32,7 +35,7 @@ module Nonnative
32
35
  end
33
36
  end
34
37
 
35
- def process_all(all, type_method, port_method, &block)
38
+ def process(all, type_method, port_method, &block)
36
39
  types = []
37
40
  pids = []
38
41
  threads = []
@@ -2,8 +2,9 @@
2
2
 
3
3
  module Nonnative
4
4
  class Server < Nonnative::Service
5
+ attr_reader :proxy
6
+
5
7
  def initialize(service)
6
- @id = SecureRandom.hex(5)
7
8
  @proxy = Nonnative::ProxyFactory.create(service)
8
9
 
9
10
  super service
@@ -17,7 +18,7 @@ module Nonnative
17
18
  wait_start
18
19
  end
19
20
 
20
- id
21
+ object_id
21
22
  end
22
23
 
23
24
  def stop
@@ -30,15 +31,11 @@ module Nonnative
30
31
  wait_stop
31
32
  end
32
33
 
33
- id
34
+ object_id
34
35
  end
35
36
 
36
- protected
37
-
38
- attr_reader :id
39
-
40
37
  private
41
38
 
42
- attr_reader :proxy, :thread
39
+ attr_reader :thread
43
40
  end
44
41
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.17.0'
4
+ VERSION = '1.22.0'
5
5
  end
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.add_dependency 'cucumber', '~> 3.1', '>= 3.1.2'
28
- spec.add_dependency 'grpc', '~> 1.28'
27
+ spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
28
+ spec.add_dependency 'cucumber', ['>= 4', '< 5']
29
+ spec.add_dependency 'grpc', ['>= 1', '< 2']
29
30
  spec.add_dependency 'puma', '~> 4.3', '>= 4.3.3'
30
31
  spec.add_dependency 'rest-client', '~> 2.1'
31
32
  spec.add_dependency 'rspec-benchmark', '~> 0.6.0'
@@ -33,10 +34,9 @@ Gem::Specification.new do |spec|
33
34
  spec.add_dependency 'sinatra', '~> 2.0', '>= 2.0.8.1'
34
35
 
35
36
  spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
36
- spec.add_development_dependency 'chutney', '~> 2.0', '>= 2.0.3.1'
37
- spec.add_development_dependency 'grpc-tools', '~> 1.28'
37
+ spec.add_development_dependency 'grpc-tools', ['>= 1', '< 2']
38
38
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
39
- spec.add_development_dependency 'rubocop', '~> 0.86.0'
39
+ spec.add_development_dependency 'rubocop', '~> 0.87.1'
40
40
  spec.add_development_dependency 'simplecov', '~> 0.17.1'
41
- spec.add_development_dependency 'solargraph', '~> 0.39.7'
41
+ spec.add_development_dependency 'solargraph', '~> 0.39.11'
42
42
  end
metadata CHANGED
@@ -1,49 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.0
4
+ version: 1.22.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-04 00:00:00.000000000 Z
11
+ date: 2020-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: cucumber
14
+ name: concurrent-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '1.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.1.2
22
+ version: 1.0.5
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '3.1'
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.5
33
+ - !ruby/object:Gem::Dependency
34
+ name: cucumber
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '4'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5'
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: 3.1.2
49
+ version: '4'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5'
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: grpc
35
55
  requirement: !ruby/object:Gem::Requirement
36
56
  requirements:
37
- - - "~>"
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '1'
60
+ - - "<"
38
61
  - !ruby/object:Gem::Version
39
- version: '1.28'
62
+ version: '2'
40
63
  type: :runtime
41
64
  prerelease: false
42
65
  version_requirements: !ruby/object:Gem::Requirement
43
66
  requirements:
44
- - - "~>"
67
+ - - ">="
45
68
  - !ruby/object:Gem::Version
46
- version: '1.28'
69
+ version: '1'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '2'
47
73
  - !ruby/object:Gem::Dependency
48
74
  name: puma
49
75
  requirement: !ruby/object:Gem::Requirement
@@ -153,39 +179,25 @@ dependencies:
153
179
  - !ruby/object:Gem::Version
154
180
  version: 2.1.4
155
181
  - !ruby/object:Gem::Dependency
156
- name: chutney
182
+ name: grpc-tools
157
183
  requirement: !ruby/object:Gem::Requirement
158
184
  requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: '2.0'
162
185
  - - ">="
163
186
  - !ruby/object:Gem::Version
164
- version: 2.0.3.1
187
+ version: '1'
188
+ - - "<"
189
+ - !ruby/object:Gem::Version
190
+ version: '2'
165
191
  type: :development
166
192
  prerelease: false
167
193
  version_requirements: !ruby/object:Gem::Requirement
168
194
  requirements:
169
- - - "~>"
170
- - !ruby/object:Gem::Version
171
- version: '2.0'
172
195
  - - ">="
173
196
  - !ruby/object:Gem::Version
174
- version: 2.0.3.1
175
- - !ruby/object:Gem::Dependency
176
- name: grpc-tools
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '1.28'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
197
+ version: '1'
198
+ - - "<"
187
199
  - !ruby/object:Gem::Version
188
- version: '1.28'
200
+ version: '2'
189
201
  - !ruby/object:Gem::Dependency
190
202
  name: rake
191
203
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +224,14 @@ dependencies:
212
224
  requirements:
213
225
  - - "~>"
214
226
  - !ruby/object:Gem::Version
215
- version: 0.86.0
227
+ version: 0.87.1
216
228
  type: :development
217
229
  prerelease: false
218
230
  version_requirements: !ruby/object:Gem::Requirement
219
231
  requirements:
220
232
  - - "~>"
221
233
  - !ruby/object:Gem::Version
222
- version: 0.86.0
234
+ version: 0.87.1
223
235
  - !ruby/object:Gem::Dependency
224
236
  name: simplecov
225
237
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +252,14 @@ dependencies:
240
252
  requirements:
241
253
  - - "~>"
242
254
  - !ruby/object:Gem::Version
243
- version: 0.39.7
255
+ version: 0.39.11
244
256
  type: :development
245
257
  prerelease: false
246
258
  version_requirements: !ruby/object:Gem::Requirement
247
259
  requirements:
248
260
  - - "~>"
249
261
  - !ruby/object:Gem::Version
250
- version: 0.39.7
262
+ version: 0.39.11
251
263
  description: Allows you to keep using the power of ruby to test other systems
252
264
  email:
253
265
  - alexrfalkowski@gmail.com
@@ -301,7 +313,7 @@ homepage: https://github.com/alexfalkowski/nonnative
301
313
  licenses:
302
314
  - Unlicense
303
315
  metadata: {}
304
- post_install_message:
316
+ post_install_message:
305
317
  rdoc_options: []
306
318
  require_paths:
307
319
  - lib
@@ -316,8 +328,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
328
  - !ruby/object:Gem::Version
317
329
  version: '0'
318
330
  requirements: []
319
- rubygems_version: 3.0.8
320
- signing_key:
331
+ rubygems_version: 3.0.3
332
+ signing_key:
321
333
  specification_version: 4
322
334
  summary: Allows you to keep using the power of ruby to test other systems
323
335
  test_files: []