griffin 0.1.2 → 0.1.3
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 +4 -4
- data/examples/interceptors/server_logging_interceptor.rb +5 -4
- data/examples/routeguide_client.rb +39 -2
- data/examples/routeguide_server.rb +37 -13
- data/griffin.gemspec +2 -2
- data/lib/griffin/engine/server.rb +4 -1
- data/lib/griffin/engine/single.rb +5 -1
- data/lib/griffin/server.rb +9 -7
- data/lib/griffin/server_config_builder.rb +13 -3
- data/lib/griffin/version.rb +1 -1
- data/pb/grpc/health/checker.rb +76 -0
- data/pb/grpc/health/v1/health_pb.rb +28 -0
- data/pb/grpc/health/v1/health_services_pb.rb +44 -0
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f4d42dab0788aed394458a38fbcf88f9d5ebbe008ae97075c8df717d7022d4e
|
4
|
+
data.tar.gz: 1f5c7a121e48f18e2e3a16a9f2769b4f38ae7f4a4ce7649c3257263b306ba968
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34ab89ab90c27fb09ea40071c60c1bcd019fee2089034444bacf7531f38ae8ec61277fa9adf8440cd0a53eb11a9685ee026a2a44656c3b70d8602820e876df87
|
7
|
+
data.tar.gz: 19958ae78aa855bd8994636d3e4fdbd478af80868af31d14141dde8b71017095ef49584db8f8259bff2f32452b23355d65bf6e0a1f226e21f6d95ae0e1c3ba73
|
@@ -21,8 +21,9 @@ class LoggingInterceptor < GRPC::ServerInterceptor
|
|
21
21
|
yield(LoggingStream.new(call))
|
22
22
|
end
|
23
23
|
|
24
|
-
def bidi_streamer(**)
|
25
|
-
|
24
|
+
def bidi_streamer(call: nil, method: nil, **)
|
25
|
+
GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
|
26
|
+
yield(LoggingStream.new(call))
|
26
27
|
end
|
27
28
|
|
28
29
|
class LoggingStream
|
@@ -31,13 +32,13 @@ class LoggingInterceptor < GRPC::ServerInterceptor
|
|
31
32
|
end
|
32
33
|
|
33
34
|
def send_msg(msg, **opt)
|
34
|
-
GrpcKit.logger.info("logging interceptor send #{msg}")
|
35
|
+
GrpcKit.logger.info("logging interceptor send #{msg.inspect}")
|
35
36
|
@stream.send_msg(msg, opt)
|
36
37
|
end
|
37
38
|
|
38
39
|
def recv(**opt)
|
39
40
|
@stream.recv(**opt).tap do |v|
|
40
|
-
GrpcKit.logger.info("logging interceptor recv #{v}")
|
41
|
+
GrpcKit.logger.info("logging interceptor recv #{v.inspect}")
|
41
42
|
end
|
42
43
|
end
|
43
44
|
end
|
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
$LOAD_PATH.unshift File.expand_path('./examples/routeguide')
|
6
6
|
|
7
|
+
require 'griffin'
|
7
8
|
require 'grpc_kit'
|
8
9
|
require 'pry'
|
9
10
|
require 'json'
|
@@ -11,6 +12,8 @@ require 'logger'
|
|
11
12
|
require 'routeguide_services_pb'
|
12
13
|
|
13
14
|
RESOURCE_PATH = './examples/routeguide/routeguide.json'
|
15
|
+
HOST = 'localhost'
|
16
|
+
PORT = 50051
|
14
17
|
|
15
18
|
$logger = Logger.new(STDOUT)
|
16
19
|
|
@@ -22,7 +25,7 @@ def get_feature(stub)
|
|
22
25
|
]
|
23
26
|
|
24
27
|
points.each do |pt|
|
25
|
-
feature = stub.get_feature(pt
|
28
|
+
feature = stub.get_feature(pt)
|
26
29
|
if feature.name == ''
|
27
30
|
$logger.info("Found nothing at #{feature.inspect}")
|
28
31
|
else
|
@@ -47,6 +50,8 @@ def list_features(stub)
|
|
47
50
|
end
|
48
51
|
|
49
52
|
def record_route(stub, size)
|
53
|
+
$logger.info('===== record_route =====')
|
54
|
+
|
50
55
|
features = File.open(RESOURCE_PATH) do |f|
|
51
56
|
JSON.parse(f.read)
|
52
57
|
end
|
@@ -65,6 +70,36 @@ def record_route(stub, size)
|
|
65
70
|
puts "summary: #{resp[0].inspect}"
|
66
71
|
end
|
67
72
|
|
73
|
+
ROUTE_CHAT_NOTES = [
|
74
|
+
Routeguide::RouteNote.new(message: 'First message', location: Routeguide::Point.new(latitude: 0, longitude: 1)),
|
75
|
+
Routeguide::RouteNote.new(message: 'Second message', location: Routeguide::Point.new(latitude: 0, longitude: 2)),
|
76
|
+
Routeguide::RouteNote.new(message: 'Third message', location: Routeguide::Point.new(latitude: 0, longitude: 3)),
|
77
|
+
Routeguide::RouteNote.new(message: 'Fourth message', location: Routeguide::Point.new(latitude: 0, longitude: 1)),
|
78
|
+
Routeguide::RouteNote.new(message: 'Fifth message', location: Routeguide::Point.new(latitude: 0, longitude: 2)),
|
79
|
+
Routeguide::RouteNote.new(message: 'Sixth message', location: Routeguide::Point.new(latitude: 0, longitude: 3)),
|
80
|
+
].freeze
|
81
|
+
|
82
|
+
def route_chat(stub)
|
83
|
+
$logger.info('===== route_chat =====')
|
84
|
+
|
85
|
+
call = stub.route_chat({})
|
86
|
+
|
87
|
+
t = Thread.new do
|
88
|
+
loop do
|
89
|
+
rn = call.recv
|
90
|
+
$logger.info("Got message #{rn.message} at point point(#{rn.location.latitude}, #{rn.location.longitude})")
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
ROUTE_CHAT_NOTES.each do |rcn|
|
95
|
+
call.send_msg(rcn)
|
96
|
+
sleep 1
|
97
|
+
end
|
98
|
+
|
99
|
+
call.close_and_send
|
100
|
+
t.join
|
101
|
+
end
|
102
|
+
|
68
103
|
opts = {}
|
69
104
|
|
70
105
|
if ENV['GRPC_INTERCEPTOR']
|
@@ -74,10 +109,12 @@ elsif ENV['GRPC_TIMEOUT']
|
|
74
109
|
opts[:timeout] = Integer(ENV['GRPC_TIMEOUT'])
|
75
110
|
end
|
76
111
|
|
77
|
-
|
112
|
+
sock = TCPSocket.new(HOST, PORT)
|
113
|
+
stub = Routeguide::RouteGuide::Stub.new(sock, **opts)
|
78
114
|
|
79
115
|
get_feature(stub)
|
80
116
|
list_features(stub)
|
81
117
|
record_route(stub, 10)
|
118
|
+
route_chat(stub)
|
82
119
|
|
83
120
|
# rubocop:enable Style/GlobalVars
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift File.expand_path('./examples/routeguide')
|
4
4
|
|
5
|
-
require '
|
5
|
+
require 'griffin'
|
6
6
|
require 'pry'
|
7
7
|
require 'json'
|
8
8
|
require 'routeguide_services_pb'
|
@@ -17,6 +17,8 @@ class Server < Routeguide::RouteGuide::Service
|
|
17
17
|
features = JSON.parse(f.read)
|
18
18
|
@features = Hash[features.map { |x| [x['location'], x['name']] }]
|
19
19
|
end
|
20
|
+
|
21
|
+
@route_notes = Hash.new { |h, k| h[k] = [] }
|
20
22
|
end
|
21
23
|
|
22
24
|
def get_feature(point, ctx)
|
@@ -70,6 +72,21 @@ class Server < Routeguide::RouteGuide::Service
|
|
70
72
|
)
|
71
73
|
end
|
72
74
|
|
75
|
+
def route_chat(call)
|
76
|
+
loop do
|
77
|
+
rn = call.recv
|
78
|
+
@logger.info("route_note location=#{rn.location.inspect}, message=#{rn.message}")
|
79
|
+
key = "#{rn.location.latitude} #{rn.location.longitude}"
|
80
|
+
saved_msgs = @route_notes[key]
|
81
|
+
@route_notes[key] << rn.message
|
82
|
+
|
83
|
+
saved_msgs.each do |m|
|
84
|
+
n = Routeguide::RouteNote.new(location: rn.location, message: m)
|
85
|
+
call.send_msg(n)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
73
90
|
private
|
74
91
|
|
75
92
|
COORD_FACTOR = 1e7
|
@@ -99,20 +116,27 @@ class Server < Routeguide::RouteGuide::Service
|
|
99
116
|
end
|
100
117
|
end
|
101
118
|
|
102
|
-
|
119
|
+
# require 'griffin/interceptors/server/payload_interceptor'
|
120
|
+
require 'griffin/interceptors/server/filtered_payload_interceptor'
|
121
|
+
require 'griffin/interceptors/server/logging_interceptor'
|
122
|
+
require 'griffin/interceptors/server/x_request_id_interceptor'
|
103
123
|
|
104
|
-
|
124
|
+
interceptors = [
|
125
|
+
Griffin::Interceptors::Server::FilteredPayloadInterceptor.new,
|
126
|
+
Griffin::Interceptors::Server::LoggingInterceptor.new,
|
127
|
+
Griffin::Interceptors::Server::XRequestIdInterceptor.new,
|
128
|
+
]
|
105
129
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
130
|
+
Griffin::Server.configure do |c|
|
131
|
+
c.bind '127.0.0.1'
|
132
|
+
|
133
|
+
c.port 50051
|
110
134
|
|
111
|
-
|
112
|
-
server.handle(Server.new)
|
113
|
-
server.run
|
135
|
+
c.services Server.new
|
114
136
|
|
115
|
-
|
116
|
-
|
117
|
-
|
137
|
+
c.interceptors interceptors
|
138
|
+
|
139
|
+
c.workers 2
|
118
140
|
end
|
141
|
+
|
142
|
+
Griffin::Server.run
|
data/griffin.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
end
|
21
21
|
spec.bindir = 'exe'
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
-
spec.require_paths = ['lib']
|
23
|
+
spec.require_paths = ['lib', 'pb']
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler'
|
26
26
|
spec.add_development_dependency 'rake'
|
@@ -28,6 +28,6 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency 'rubocop'
|
29
29
|
|
30
30
|
spec.add_dependency 'connection_pool', '~> 2.2.2'
|
31
|
-
spec.add_dependency 'grpc_kit', '~> 0.1.
|
31
|
+
spec.add_dependency 'grpc_kit', '~> 0.1.10'
|
32
32
|
spec.add_dependency 'serverengine', '~> 2.0.7'
|
33
33
|
end
|
@@ -7,7 +7,11 @@ module Griffin
|
|
7
7
|
module Engine
|
8
8
|
class Single
|
9
9
|
def self.create(config)
|
10
|
-
|
10
|
+
serv = Griffin::Server.new(
|
11
|
+
pool_size: config[:pool_size],
|
12
|
+
interceptors: config[:interceptors],
|
13
|
+
)
|
14
|
+
new(serv, config)
|
11
15
|
end
|
12
16
|
|
13
17
|
def initialize(server, config)
|
data/lib/griffin/server.rb
CHANGED
@@ -8,7 +8,6 @@ require 'griffin/thread_pool'
|
|
8
8
|
|
9
9
|
module Griffin
|
10
10
|
class Server
|
11
|
-
DEFAULT_WORKER_SIZE = 10
|
12
11
|
DEFAULT_BACKLOG_SIZE = 1024
|
13
12
|
|
14
13
|
GRACEFUL_SHUTDOWN = '0'
|
@@ -29,18 +28,21 @@ module Griffin
|
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
# @param pool_size [Integer] Worker thread size
|
32
|
+
# @param interceptors [Array<GrpcKit::GRPC::ServerInterceptor>] list of interceptors
|
33
|
+
def initialize(pool_size:, interceptors: [], **opts)
|
34
|
+
@worker_size = pool_size
|
35
|
+
@server = GrpcKit::Server.new(interceptors: interceptors)
|
35
36
|
@opts = opts
|
36
37
|
@status = :run
|
37
38
|
@worker_id = 0
|
38
39
|
end
|
39
40
|
|
40
41
|
def handle(handler)
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
klass = handler.is_a?(Class) ? handler : handler.class
|
43
|
+
@server.handle(klass)
|
44
|
+
klass.rpc_descs.each_key do |path|
|
45
|
+
Griffin.logger.info("Handle #{path}")
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
@@ -6,7 +6,15 @@ module Griffin
|
|
6
6
|
SERVERENGINE_BLOCK_CONFIGS = %i[before_fork after_fork].freeze
|
7
7
|
# Users can't change these values
|
8
8
|
SERVERENGIEN_FIXED_CONFIGS = %i[daemonize worker_type worker_process_name].freeze
|
9
|
-
|
9
|
+
|
10
|
+
# The default size of thread pool
|
11
|
+
DEFAULT_POOL_SIZE = 10
|
12
|
+
|
13
|
+
GRIFFIN_CONFIGS = [
|
14
|
+
# The size of thread pool
|
15
|
+
:pool_size
|
16
|
+
].freeze
|
17
|
+
|
10
18
|
GRPC_CONFIGS = %i[services interceptors].freeze
|
11
19
|
|
12
20
|
ServerConfig = Struct.new(*(SERVERENGINE_PRIMITIVE_CONFIGS + SERVERENGINE_BLOCK_CONFIGS + SERVERENGIEN_FIXED_CONFIGS + GRIFFIN_CONFIGS + GRPC_CONFIGS)) do
|
@@ -23,6 +31,8 @@ module Griffin
|
|
23
31
|
workers: 1,
|
24
32
|
bind: '0.0.0.0',
|
25
33
|
port: 50051,
|
34
|
+
pool_size: DEFAULT_POOL_SIZE,
|
35
|
+
interceptors: [],
|
26
36
|
}.freeze
|
27
37
|
|
28
38
|
def initialize
|
@@ -41,8 +51,8 @@ module Griffin
|
|
41
51
|
end
|
42
52
|
end
|
43
53
|
|
44
|
-
def services(*
|
45
|
-
@opts[:services] = serv
|
54
|
+
def services(serv, *rest)
|
55
|
+
@opts[:services] = Array(serv) + rest
|
46
56
|
end
|
47
57
|
|
48
58
|
def build
|
data/lib/griffin/version.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Copyright 2015 gRPC authors.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'grpc'
|
16
|
+
require 'grpc/health/v1/health_services_pb'
|
17
|
+
require 'thread'
|
18
|
+
|
19
|
+
module Grpc
|
20
|
+
# Health contains classes and modules that support providing a health check
|
21
|
+
# service.
|
22
|
+
module Health
|
23
|
+
# Checker is implementation of the schema-specified health checking service.
|
24
|
+
class Checker < V1::Health::Service
|
25
|
+
StatusCodes = GRPC::Core::StatusCodes
|
26
|
+
HealthCheckResponse = V1::HealthCheckResponse
|
27
|
+
|
28
|
+
# Initializes the statuses of participating services
|
29
|
+
def initialize
|
30
|
+
@statuses = {}
|
31
|
+
@status_mutex = Mutex.new # guards access to @statuses
|
32
|
+
end
|
33
|
+
|
34
|
+
# Implements the rpc IDL API method
|
35
|
+
def check(req, _call)
|
36
|
+
status = nil
|
37
|
+
@status_mutex.synchronize do
|
38
|
+
status = @statuses["#{req.service}"]
|
39
|
+
end
|
40
|
+
if status.nil?
|
41
|
+
fail GRPC::BadStatus.new_status_exception(StatusCodes::NOT_FOUND)
|
42
|
+
end
|
43
|
+
HealthCheckResponse.new(status: status)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Adds the health status for a given service.
|
47
|
+
def add_status(service, status)
|
48
|
+
@status_mutex.synchronize { @statuses["#{service}"] = status }
|
49
|
+
end
|
50
|
+
|
51
|
+
# Adds given health status for all given services
|
52
|
+
def set_status_for_services(status, *services)
|
53
|
+
@status_mutex.synchronize do
|
54
|
+
services.each { |service| @statuses["#{service}"] = status }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Adds health status for each service given within hash
|
59
|
+
def add_statuses(service_statuses = {})
|
60
|
+
@status_mutex.synchronize do
|
61
|
+
service_statuses.each_pair { |service, status| @statuses["#{service}"] = status }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Clears the status for the given service.
|
66
|
+
def clear_status(service)
|
67
|
+
@status_mutex.synchronize { @statuses.delete("#{service}") }
|
68
|
+
end
|
69
|
+
|
70
|
+
# Clears alls the statuses.
|
71
|
+
def clear_all
|
72
|
+
@status_mutex.synchronize { @statuses = {} }
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: grpc/health/v1/health.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "grpc.health.v1.HealthCheckRequest" do
|
8
|
+
optional :service, :string, 1
|
9
|
+
end
|
10
|
+
add_message "grpc.health.v1.HealthCheckResponse" do
|
11
|
+
optional :status, :enum, 1, "grpc.health.v1.HealthCheckResponse.ServingStatus"
|
12
|
+
end
|
13
|
+
add_enum "grpc.health.v1.HealthCheckResponse.ServingStatus" do
|
14
|
+
value :UNKNOWN, 0
|
15
|
+
value :SERVING, 1
|
16
|
+
value :NOT_SERVING, 2
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Grpc
|
21
|
+
module Health
|
22
|
+
module V1
|
23
|
+
HealthCheckRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1.HealthCheckRequest").msgclass
|
24
|
+
HealthCheckResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1.HealthCheckResponse").msgclass
|
25
|
+
HealthCheckResponse::ServingStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1.HealthCheckResponse.ServingStatus").enummodule
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# Source: grpc/health/v1/health.proto for package 'grpc.health.v1'
|
3
|
+
# Original file comments:
|
4
|
+
# Copyright 2015 The gRPC Authors
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
# The canonical version of this proto can be found at
|
19
|
+
# https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto
|
20
|
+
#
|
21
|
+
|
22
|
+
require 'grpc'
|
23
|
+
require 'grpc/health/v1/health_pb'
|
24
|
+
|
25
|
+
module Grpc
|
26
|
+
module Health
|
27
|
+
module V1
|
28
|
+
module Health
|
29
|
+
class Service
|
30
|
+
|
31
|
+
include GRPC::GenericService
|
32
|
+
|
33
|
+
self.marshal_class_method = :encode
|
34
|
+
self.unmarshal_class_method = :decode
|
35
|
+
self.service_name = 'grpc.health.v1.Health'
|
36
|
+
|
37
|
+
rpc :Check, HealthCheckRequest, HealthCheckResponse
|
38
|
+
end
|
39
|
+
|
40
|
+
Stub = Service.rpc_stub_class
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: griffin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
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-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.1.
|
89
|
+
version: 0.1.10
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.1.
|
96
|
+
version: 0.1.10
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: serverengine
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,6 +154,9 @@ files:
|
|
154
154
|
- lib/griffin/server_config_builder.rb
|
155
155
|
- lib/griffin/thread_pool.rb
|
156
156
|
- lib/griffin/version.rb
|
157
|
+
- pb/grpc/health/checker.rb
|
158
|
+
- pb/grpc/health/v1/health_pb.rb
|
159
|
+
- pb/grpc/health/v1/health_services_pb.rb
|
157
160
|
homepage: https://github.com/ganmacs/griffin
|
158
161
|
licenses:
|
159
162
|
- MIT
|
@@ -162,6 +165,7 @@ post_install_message:
|
|
162
165
|
rdoc_options: []
|
163
166
|
require_paths:
|
164
167
|
- lib
|
168
|
+
- pb
|
165
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
166
170
|
requirements:
|
167
171
|
- - ">="
|