grpc 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +4 -2
  3. data/bin/{interop/test/cpp/interop/test.rb → grpc_ruby_interop_client} +4 -14
  4. data/bin/{interop/test/cpp/interop/empty.rb → grpc_ruby_interop_server} +4 -15
  5. data/bin/interop/interop_client.rb +9 -335
  6. data/bin/interop/interop_server.rb +9 -153
  7. data/bin/math_client.rb +3 -3
  8. data/bin/math_server.rb +18 -1
  9. data/bin/noproto_server.rb +2 -1
  10. data/ext/grpc/rb_call.c +82 -15
  11. data/ext/grpc/rb_channel.c +141 -11
  12. data/ext/grpc/rb_channel_args.c +2 -1
  13. data/ext/grpc/rb_completion_queue.c +8 -7
  14. data/ext/grpc/rb_credentials.c +7 -6
  15. data/ext/grpc/rb_grpc.c +23 -8
  16. data/ext/grpc/rb_server.c +31 -45
  17. data/ext/grpc/rb_server_credentials.c +91 -34
  18. data/lib/grpc/generic/active_call.rb +7 -7
  19. data/lib/grpc/generic/bidi_call.rb +17 -12
  20. data/lib/grpc/generic/client_stub.rb +88 -22
  21. data/lib/grpc/generic/rpc_server.rb +19 -18
  22. data/lib/grpc/generic/service.rb +8 -10
  23. data/lib/grpc/grpc.so +0 -0
  24. data/lib/grpc/logconfig.rb +26 -10
  25. data/lib/grpc/version.rb +1 -1
  26. data/spec/call_spec.rb +9 -1
  27. data/spec/channel_spec.rb +2 -2
  28. data/spec/client_server_spec.rb +28 -11
  29. data/spec/credentials_spec.rb +7 -7
  30. data/spec/generic/active_call_spec.rb +43 -18
  31. data/spec/generic/client_stub_spec.rb +21 -1
  32. data/spec/generic/rpc_server_spec.rb +20 -9
  33. data/spec/pb/health/checker_spec.rb +232 -0
  34. data/spec/server_credentials_spec.rb +32 -7
  35. data/spec/server_spec.rb +8 -4
  36. data/spec/spec_helper.rb +13 -1
  37. metadata +31 -51
  38. data/.gitignore +0 -15
  39. data/.rspec +0 -4
  40. data/.rubocop.yml +0 -10
  41. data/.rubocop_todo.yml +0 -44
  42. data/CHANGELOG.md +0 -11
  43. data/Gemfile +0 -4
  44. data/README.md +0 -84
  45. data/bin/interop/README.md +0 -8
  46. data/bin/interop/test/cpp/interop/messages.rb +0 -89
  47. data/bin/interop/test/cpp/interop/test_services.rb +0 -60
  48. data/grpc.gemspec +0 -40
@@ -0,0 +1,232 @@
1
+ # Copyright 2015, Google Inc.
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are
6
+ # met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # * Redistributions in binary form must reproduce the above
11
+ # copyright notice, this list of conditions and the following disclaimer
12
+ # in the documentation and/or other materials provided with the
13
+ # distribution.
14
+ # * Neither the name of Google Inc. nor the names of its
15
+ # contributors may be used to endorse or promote products derived from
16
+ # this software without specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+
30
+ require 'grpc'
31
+ require 'grpc/health/v1alpha/health'
32
+ require 'grpc/health/checker'
33
+ require 'open3'
34
+
35
+ def can_run_codegen_check
36
+ system('which grpc_ruby_plugin') && system('which protoc')
37
+ end
38
+
39
+ describe 'Health protobuf code generation' do
40
+ context 'the health service file used by grpc/health/checker' do
41
+ if !can_run_codegen_check
42
+ skip 'protoc || grpc_ruby_plugin missing, cannot verify health code-gen'
43
+ else
44
+ it 'should already be loaded indirectly i.e, used by the other specs' do
45
+ expect(require('grpc/health/v1alpha/health_services')).to be(false)
46
+ end
47
+
48
+ it 'should have the same content as created by code generation' do
49
+ root_dir = File.dirname(
50
+ File.dirname(File.dirname(File.dirname(__FILE__))))
51
+ pb_dir = File.join(root_dir, 'pb')
52
+
53
+ # Get the current content
54
+ service_path = File.join(pb_dir, 'grpc', 'health', 'v1alpha',
55
+ 'health_services.rb')
56
+ want = nil
57
+ File.open(service_path) { |f| want = f.read }
58
+
59
+ # Regenerate it
60
+ plugin, = Open3.capture2('which', 'grpc_ruby_plugin')
61
+ plugin = plugin.strip
62
+ got = nil
63
+ Dir.mktmpdir do |tmp_dir|
64
+ gen_out = File.join(tmp_dir, 'grpc', 'health', 'v1alpha',
65
+ 'health_services.rb')
66
+ pid = spawn(
67
+ 'protoc',
68
+ '-I.',
69
+ 'grpc/health/v1alpha/health.proto',
70
+ "--grpc_out=#{tmp_dir}",
71
+ "--plugin=protoc-gen-grpc=#{plugin}",
72
+ chdir: pb_dir)
73
+ Process.wait(pid)
74
+ File.open(gen_out) { |f| got = f.read }
75
+ end
76
+ expect(got).to eq(want)
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ describe Grpc::Health::Checker do
83
+ StatusCodes = GRPC::Core::StatusCodes
84
+ ServingStatus = Grpc::Health::V1alpha::HealthCheckResponse::ServingStatus
85
+ HCResp = Grpc::Health::V1alpha::HealthCheckResponse
86
+ HCReq = Grpc::Health::V1alpha::HealthCheckRequest
87
+ success_tests =
88
+ [
89
+ {
90
+ desc: 'neither host or service are specified',
91
+ host: '',
92
+ service: ''
93
+ }, {
94
+ desc: 'only the host is specified',
95
+ host: 'test-fake-host',
96
+ service: ''
97
+ }, {
98
+ desc: 'the host and service are specified',
99
+ host: 'test-fake-host',
100
+ service: 'fake-service-1'
101
+ }, {
102
+ desc: 'only the service is specified',
103
+ host: '',
104
+ service: 'fake-service-2'
105
+ }
106
+ ]
107
+
108
+ context 'initialization' do
109
+ it 'can be constructed with no args' do
110
+ expect(subject).to_not be(nil)
111
+ end
112
+ end
113
+
114
+ context 'method `add_status` and `check`' do
115
+ success_tests.each do |t|
116
+ it "should succeed when #{t[:desc]}" do
117
+ subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
118
+ got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
119
+ nil)
120
+ want = HCResp.new(status: ServingStatus::NOT_SERVING)
121
+ expect(got).to eq(want)
122
+ end
123
+ end
124
+ end
125
+
126
+ context 'method `check`' do
127
+ success_tests.each do |t|
128
+ it "should fail with NOT_FOUND when #{t[:desc]}" do
129
+ blk = proc do
130
+ subject.check(HCReq.new(host: t[:host], service: t[:service]), nil)
131
+ end
132
+ expected_msg = /#{StatusCodes::NOT_FOUND}/
133
+ expect(&blk).to raise_error GRPC::BadStatus, expected_msg
134
+ end
135
+ end
136
+ end
137
+
138
+ context 'method `clear_status`' do
139
+ success_tests.each do |t|
140
+ it "should fail after clearing status when #{t[:desc]}" do
141
+ subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
142
+ got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
143
+ nil)
144
+ want = HCResp.new(status: ServingStatus::NOT_SERVING)
145
+ expect(got).to eq(want)
146
+
147
+ subject.clear_status(t[:host], t[:service])
148
+ blk = proc do
149
+ subject.check(HCReq.new(host: t[:host], service: t[:service]),
150
+ nil)
151
+ end
152
+ expected_msg = /#{StatusCodes::NOT_FOUND}/
153
+ expect(&blk).to raise_error GRPC::BadStatus, expected_msg
154
+ end
155
+ end
156
+ end
157
+
158
+ context 'method `clear_all`' do
159
+ it 'should return NOT_FOUND after being invoked' do
160
+ success_tests.each do |t|
161
+ subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
162
+ got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
163
+ nil)
164
+ want = HCResp.new(status: ServingStatus::NOT_SERVING)
165
+ expect(got).to eq(want)
166
+ end
167
+
168
+ subject.clear_all
169
+
170
+ success_tests.each do |t|
171
+ blk = proc do
172
+ subject.check(HCReq.new(host: t[:host], service: t[:service]), nil)
173
+ end
174
+ expected_msg = /#{StatusCodes::NOT_FOUND}/
175
+ expect(&blk).to raise_error GRPC::BadStatus, expected_msg
176
+ end
177
+ end
178
+ end
179
+
180
+ describe 'running on RpcServer' do
181
+ RpcServer = GRPC::RpcServer
182
+ CheckerStub = Grpc::Health::Checker.rpc_stub_class
183
+
184
+ before(:each) do
185
+ @server_queue = GRPC::Core::CompletionQueue.new
186
+ server_host = '0.0.0.0:0'
187
+ @server = GRPC::Core::Server.new(@server_queue, nil)
188
+ server_port = @server.add_http2_port(server_host, :this_port_is_insecure)
189
+ @host = "localhost:#{server_port}"
190
+ @ch = GRPC::Core::Channel.new(@host, nil)
191
+ @client_opts = { channel_override: @ch }
192
+ server_opts = {
193
+ server_override: @server,
194
+ completion_queue_override: @server_queue,
195
+ poll_period: 1
196
+ }
197
+ @srv = RpcServer.new(**server_opts)
198
+ end
199
+
200
+ after(:each) do
201
+ @srv.stop
202
+ end
203
+
204
+ it 'should receive the correct status', server: true do
205
+ @srv.handle(subject)
206
+ subject.add_status('', '', ServingStatus::NOT_SERVING)
207
+ t = Thread.new { @srv.run }
208
+ @srv.wait_till_running
209
+
210
+ stub = CheckerStub.new(@host, **@client_opts)
211
+ got = stub.check(HCReq.new)
212
+ want = HCResp.new(status: ServingStatus::NOT_SERVING)
213
+ expect(got).to eq(want)
214
+ @srv.stop
215
+ t.join
216
+ end
217
+
218
+ it 'should fail on unknown services', server: true do
219
+ @srv.handle(subject)
220
+ t = Thread.new { @srv.run }
221
+ @srv.wait_till_running
222
+ blk = proc do
223
+ stub = CheckerStub.new(@host, **@client_opts)
224
+ stub.check(HCReq.new(host: 'unknown', service: 'unknown'))
225
+ end
226
+ expected_msg = /#{StatusCodes::NOT_FOUND}/
227
+ expect(&blk).to raise_error GRPC::BadStatus, expected_msg
228
+ @srv.stop
229
+ t.join
230
+ end
231
+ end
232
+ end
@@ -31,8 +31,9 @@ require 'grpc'
31
31
 
32
32
  def load_test_certs
33
33
  test_root = File.join(File.dirname(__FILE__), 'testdata')
34
- files = ['ca.pem', 'server1.pem', 'server1.key']
35
- files.map { |f| File.open(File.join(test_root, f)).read }
34
+ files = ['ca.pem', 'server1.key', 'server1.pem']
35
+ contents = files.map { |f| File.open(File.join(test_root, f)).read }
36
+ [contents[0], [{ private_key: contents[1], cert_chain: contents[2] }], false]
36
37
  end
37
38
 
38
39
  describe GRPC::Core::ServerCredentials do
@@ -40,7 +41,8 @@ describe GRPC::Core::ServerCredentials do
40
41
 
41
42
  describe '#new' do
42
43
  it 'can be constructed from a fake CA PEM, server PEM and a server key' do
43
- expect { Creds.new('a', 'b', 'c') }.not_to raise_error
44
+ creds = Creds.new('a', [{ private_key: 'a', cert_chain: 'b' }], false)
45
+ expect(creds).to_not be_nil
44
46
  end
45
47
 
46
48
  it 'can be constructed using the test certificates' do
@@ -48,21 +50,44 @@ describe GRPC::Core::ServerCredentials do
48
50
  expect { Creds.new(*certs) }.not_to raise_error
49
51
  end
50
52
 
53
+ it 'cannot be constructed without a nil key_cert pair array' do
54
+ root_cert, _, _ = load_test_certs
55
+ blk = proc do
56
+ Creds.new(root_cert, nil, false)
57
+ end
58
+ expect(&blk).to raise_error
59
+ end
60
+
61
+ it 'cannot be constructed without any key_cert pairs' do
62
+ root_cert, _, _ = load_test_certs
63
+ blk = proc do
64
+ Creds.new(root_cert, [], false)
65
+ end
66
+ expect(&blk).to raise_error
67
+ end
68
+
51
69
  it 'cannot be constructed without a server cert chain' do
52
70
  root_cert, server_key, _ = load_test_certs
53
- blk = proc { Creds.new(root_cert, server_key, nil) }
71
+ blk = proc do
72
+ Creds.new(root_cert,
73
+ [{ server_key: server_key, cert_chain: nil }],
74
+ false)
75
+ end
54
76
  expect(&blk).to raise_error
55
77
  end
56
78
 
57
79
  it 'cannot be constructed without a server key' do
58
80
  root_cert, _, _ = load_test_certs
59
- blk = proc { Creds.new(root_cert, nil, cert_chain) }
81
+ blk = proc do
82
+ Creds.new(root_cert,
83
+ [{ server_key: nil, cert_chain: cert_chain }])
84
+ end
60
85
  expect(&blk).to raise_error
61
86
  end
62
87
 
63
88
  it 'can be constructed without a root_cret' do
64
- _, server_key, cert_chain = load_test_certs
65
- blk = proc { Creds.new(nil, server_key, cert_chain) }
89
+ _, cert_pairs, _ = load_test_certs
90
+ blk = proc { Creds.new(nil, cert_pairs, false) }
66
91
  expect(&blk).to_not raise_error
67
92
  end
68
93
  end
@@ -32,7 +32,8 @@ require 'grpc'
32
32
  def load_test_certs
33
33
  test_root = File.join(File.dirname(__FILE__), 'testdata')
34
34
  files = ['ca.pem', 'server1.key', 'server1.pem']
35
- files.map { |f| File.open(File.join(test_root, f)).read }
35
+ contents = files.map { |f| File.open(File.join(test_root, f)).read }
36
+ [contents[0], [{ private_key: contents[1], cert_chain: contents[2] }], false]
36
37
  end
37
38
 
38
39
  Server = GRPC::Core::Server
@@ -104,7 +105,7 @@ describe Server do
104
105
  it 'runs without failing' do
105
106
  blk = proc do
106
107
  s = Server.new(@cq, nil)
107
- s.add_http2_port('localhost:0')
108
+ s.add_http2_port('localhost:0', :this_port_is_insecure)
108
109
  s.close(@cq)
109
110
  end
110
111
  expect(&blk).to_not raise_error
@@ -113,7 +114,10 @@ describe Server do
113
114
  it 'fails if the server is closed' do
114
115
  s = Server.new(@cq, nil)
115
116
  s.close(@cq)
116
- expect { s.add_http2_port('localhost:0') }.to raise_error(RuntimeError)
117
+ blk = proc do
118
+ s.add_http2_port('localhost:0', :this_port_is_insecure)
119
+ end
120
+ expect(&blk).to raise_error(RuntimeError)
117
121
  end
118
122
  end
119
123
 
@@ -198,7 +202,7 @@ describe Server do
198
202
 
199
203
  def start_a_server
200
204
  s = Server.new(@cq, nil)
201
- s.add_http2_port('0.0.0.0:0')
205
+ s.add_http2_port('0.0.0.0:0', :this_port_is_insecure)
202
206
  s.start
203
207
  s
204
208
  end
@@ -47,11 +47,23 @@ require 'rspec'
47
47
  require 'logging'
48
48
  require 'rspec/logging_helper'
49
49
 
50
+ # GRPC is the general RPC module
51
+ #
52
+ # Configure its logging for fine-grained log control during test runs
53
+ module GRPC
54
+ extend Logging.globally
55
+ end
56
+ Logging.logger.root.appenders = Logging.appenders.stdout
57
+ Logging.logger.root.level = :info
58
+ Logging.logger['GRPC'].level = :info
59
+ Logging.logger['GRPC::ActiveCall'].level = :info
60
+ Logging.logger['GRPC::BidiCall'].level = :info
61
+
50
62
  # Configure RSpec to capture log messages for each test. The output from the
51
63
  # logs will be stored in the @log_output variable. It is a StringIO instance.
52
64
  RSpec.configure do |config|
53
65
  include RSpec::LoggingHelper
54
- config.capture_log_messages
66
+ config.capture_log_messages # comment this out to see logs during test runs
55
67
  end
56
68
 
57
69
  RSpec::Expectations.configuration.warn_about_potential_false_positives = false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-15 00:00:00.000000000 Z
11
+ date: 2015-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -39,33 +39,33 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: logging
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
48
- type: :runtime
47
+ version: '1.9'
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.0'
54
+ version: '1.9'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest
56
+ name: logging
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '5.4'
62
- type: :runtime
61
+ version: '2.0'
62
+ type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '5.4'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.9'
83
- - !ruby/object:Gem::Dependency
84
- name: bundler
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.9'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.9'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rake
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -153,35 +139,25 @@ dependencies:
153
139
  description: Send RPCs from Ruby using GRPC
154
140
  email: temiola@google.com
155
141
  executables:
156
- - math.rb
157
142
  - math_client.rb
158
143
  - math_server.rb
159
- - math_services.rb
160
144
  - noproto_client.rb
161
145
  - noproto_server.rb
146
+ - grpc_ruby_interop_client
147
+ - grpc_ruby_interop_server
162
148
  extensions:
163
149
  - ext/grpc/extconf.rb
164
150
  extra_rdoc_files: []
165
151
  files:
166
- - ".gitignore"
167
- - ".rspec"
168
- - ".rubocop.yml"
169
- - ".rubocop_todo.yml"
170
- - CHANGELOG.md
171
- - Gemfile
172
- - README.md
173
152
  - Rakefile
174
153
  - bin/apis/google/protobuf/empty.rb
175
154
  - bin/apis/pubsub_demo.rb
176
155
  - bin/apis/tech/pubsub/proto/pubsub.rb
177
156
  - bin/apis/tech/pubsub/proto/pubsub_services.rb
178
- - bin/interop/README.md
157
+ - bin/grpc_ruby_interop_client
158
+ - bin/grpc_ruby_interop_server
179
159
  - bin/interop/interop_client.rb
180
160
  - bin/interop/interop_server.rb
181
- - bin/interop/test/cpp/interop/empty.rb
182
- - bin/interop/test/cpp/interop/messages.rb
183
- - bin/interop/test/cpp/interop/test.rb
184
- - bin/interop/test/cpp/interop/test_services.rb
185
161
  - bin/math.proto
186
162
  - bin/math.rb
187
163
  - bin/math_client.rb
@@ -208,7 +184,6 @@ files:
208
184
  - ext/grpc/rb_server.h
209
185
  - ext/grpc/rb_server_credentials.c
210
186
  - ext/grpc/rb_server_credentials.h
211
- - grpc.gemspec
212
187
  - lib/grpc.rb
213
188
  - lib/grpc/core/time_consts.rb
214
189
  - lib/grpc/errors.rb
@@ -218,6 +193,7 @@ files:
218
193
  - lib/grpc/generic/rpc_desc.rb
219
194
  - lib/grpc/generic/rpc_server.rb
220
195
  - lib/grpc/generic/service.rb
196
+ - lib/grpc/grpc.so
221
197
  - lib/grpc/logconfig.rb
222
198
  - lib/grpc/notifier.rb
223
199
  - lib/grpc/version.rb
@@ -232,6 +208,7 @@ files:
232
208
  - spec/generic/rpc_server_pool_spec.rb
233
209
  - spec/generic/rpc_server_spec.rb
234
210
  - spec/generic/service_spec.rb
211
+ - spec/pb/health/checker_spec.rb
235
212
  - spec/server_credentials_spec.rb
236
213
  - spec/server_spec.rb
237
214
  - spec/spec_helper.rb
@@ -247,7 +224,9 @@ metadata: {}
247
224
  post_install_message:
248
225
  rdoc_options: []
249
226
  require_paths:
227
+ - bin
250
228
  - lib
229
+ - pb
251
230
  required_ruby_version: !ruby/object:Gem::Requirement
252
231
  requirements:
253
232
  - - ">="
@@ -259,29 +238,30 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
238
  - !ruby/object:Gem::Version
260
239
  version: '0'
261
240
  requirements:
262
- - libgrpc ~> 0.10.0 needs to be installed
241
+ - libgrpc ~> 0.11.0 needs to be installed
263
242
  rubyforge_project:
264
243
  rubygems_version: 2.4.3
265
244
  signing_key:
266
245
  specification_version: 4
267
246
  summary: GRPC system in Ruby
268
247
  test_files:
269
- - spec/call_spec.rb
270
- - spec/channel_spec.rb
271
- - spec/client_server_spec.rb
272
- - spec/completion_queue_spec.rb
273
- - spec/credentials_spec.rb
274
- - spec/generic/active_call_spec.rb
275
248
  - spec/generic/client_stub_spec.rb
276
- - spec/generic/rpc_desc_spec.rb
277
- - spec/generic/rpc_server_pool_spec.rb
278
249
  - spec/generic/rpc_server_spec.rb
250
+ - spec/generic/active_call_spec.rb
279
251
  - spec/generic/service_spec.rb
252
+ - spec/generic/rpc_server_pool_spec.rb
253
+ - spec/generic/rpc_desc_spec.rb
280
254
  - spec/server_credentials_spec.rb
281
- - spec/server_spec.rb
255
+ - spec/credentials_spec.rb
256
+ - spec/completion_queue_spec.rb
282
257
  - spec/spec_helper.rb
283
- - spec/testdata/README
258
+ - spec/server_spec.rb
259
+ - spec/call_spec.rb
260
+ - spec/pb/health/checker_spec.rb
261
+ - spec/time_consts_spec.rb
262
+ - spec/client_server_spec.rb
263
+ - spec/channel_spec.rb
284
264
  - spec/testdata/ca.pem
285
265
  - spec/testdata/server1.key
266
+ - spec/testdata/README
286
267
  - spec/testdata/server1.pem
287
- - spec/time_consts_spec.rb