grpc_kit 0.1.6 → 0.1.7

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: cb45ef9b949590a6d6f7892fc3ee999e18e986e702cf0404c2a8de8138c8b12e
4
- data.tar.gz: 67efa185e194d7da4efd9fd8e1638d6ecd381b27e8572452fc337902d6969d3d
3
+ metadata.gz: 5d6fc31fa5c206fbd36425cff44c8d7c53a7089b2de28f0d66b0e7b76ef62844
4
+ data.tar.gz: 22143378a2ba5d8c6e8f1beeb11a82e1939ee410b505189ceca6df8244ab576d
5
5
  SHA512:
6
- metadata.gz: 28418bf3d585a8b711ee7589ea2a591a834ec061802d97aa846242fd9ced64ed8ffda4179a1c25cf90ee2fbeaa1bba538c57932500da6ecb19eba7ab8b203e8f
7
- data.tar.gz: 99be80c042bbf6b19d8c6385b8b778abfea9a2a007f22eeb1febbccc88a35d6646ba2df3fd5e915f7f9353a67b5581cc083540afc2484f46a717ef7d0c78ceea
6
+ metadata.gz: 066bee105c96f2a11395bee9d6d3006c7ee58f49dec6f56e2f12a0349a7289541a50634590d67029866f581617d5183e2a6562a0a961a59983b83e485beb0282
7
+ data.tar.gz: 91537f22b1e118b1863cb14f82a01f4e22a47a92c94595ec3b3e388fc700378e933d3feae568d1d7ef5ee408875c639fc9a58c82826e6a98faeb319f10eb9ebd
@@ -16,14 +16,19 @@ module GrpcKit
16
16
  GrpcKit.logger.debug("Launched grpc_kit(v#{GrpcKit::VERSION})")
17
17
  end
18
18
 
19
- # @params handler [object]
20
19
  def handle(handler)
21
- handler.class.rpc_descs.each do |path, rpc_desc|
20
+ klass = handler.is_a?(Class) ? handler : handler.class
21
+ unless klass.include?(GrpcKit::GRPC::GenericService)
22
+ raise "#{klass} must include GRPC::GenericService"
23
+ end
24
+
25
+ klass.rpc_descs.each do |path, rpc_desc|
22
26
  if @rpc_descs[path]
23
- raise "Duplicated method registered #{path}, class: #{handler}"
27
+ raise "Duplicated method registered #{path}, class: #{klass}"
24
28
  end
25
29
 
26
- @rpc_descs[path] = rpc_desc.build_server(handler, interceptors: @interceptors)
30
+ s = handler.is_a?(Class) ? handler.new : handler
31
+ @rpc_descs[path] = rpc_desc.build_server(s, interceptors: @interceptors)
27
32
  end
28
33
  end
29
34
 
@@ -38,7 +38,10 @@ module GrpcKit
38
38
  end
39
39
 
40
40
  def wait_readable
41
- @io.wait_writable
41
+ ::IO.select([@io], [], [])
42
+ true
43
+ rescue IOError
44
+ false
42
45
  end
43
46
 
44
47
  def flush
@@ -29,10 +29,16 @@ module GrpcKit
29
29
  end
30
30
 
31
31
  def start
32
- @io.wait_readable
33
32
  loop do
34
33
  invoke
35
34
 
35
+ if @streams.count == 0
36
+ unless @io.wait_readable
37
+ shutdown
38
+ break
39
+ end
40
+ end
41
+
36
42
  continue = run_once
37
43
  break unless continue
38
44
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrpcKit
4
- VERSION = '0.1.6'
4
+ VERSION = '0.1.7'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - ganmacs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-05 00:00:00.000000000 Z
11
+ date: 2018-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ds9