grpc_kit 0.1.6 → 0.1.7

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: 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