grpc_reflection 0.1.1 → 0.2.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +6 -0
- data/Rakefile +22 -0
- data/lib/grpc_reflection/{file_descriptor.rb → file_descriptor_decorator.rb} +1 -1
- data/lib/grpc_reflection/{file_descriptor_manager.rb → file_descriptor_decorator_manager.rb} +4 -4
- data/lib/grpc_reflection/reflection/v1/reflection_pb.rb +3 -24
- data/lib/grpc_reflection/reflection/v1/reflection_services_pb.rb +1 -1
- data/lib/grpc_reflection/reflection/v1alpha/reflection_v1alpha_pb.rb +26 -0
- data/lib/grpc_reflection/reflection/v1alpha/reflection_v1alpha_services_pb.rb +45 -0
- data/lib/grpc_reflection/server.rb +4 -24
- data/lib/grpc_reflection/server_alpha.rb +11 -0
- data/lib/grpc_reflection/server_shared.rb +35 -0
- data/lib/grpc_reflection/version.rb +1 -1
- data/lib/grpc_reflection.rb +3 -2
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a15bcd28006ba9366fe596a56989d689a8aaf52de246d629df7185585cb361b4
|
4
|
+
data.tar.gz: 57748ed036e8c034139590264803997d5192f3e7f20609c9dc367d41c3a5432c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 334661187410a4be8b4685be5d86de8c7efeac716ac2af0562880bb4379a8751bc0444467a08c44cb9ac5238c30141bf488e23b09e1ce42d3362f0a860a8ad69
|
7
|
+
data.tar.gz: 71823b0b9b61ffb7f31fbc7b07c3a9f5297cf17cab110152dbfa1f185e6761f5a2ced8eee2419bee97cc4df00407bfc55018295744d5270196ff4d5c8b42d2e5
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -37,6 +37,12 @@ s.handle(GrpcReflection::Server)
|
|
37
37
|
s.run_till_terminated_or_interrupted([1, 'int', 'SIGTERM'])
|
38
38
|
```
|
39
39
|
|
40
|
+
If you want to use v1 alpha, please use `GrpcReflection::ServerAlpha`.
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
s.handle(GrpcReflection::ServerAlpha)
|
44
|
+
```
|
45
|
+
|
40
46
|
## Development
|
41
47
|
|
42
48
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/Rakefile
CHANGED
@@ -2,9 +2,31 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "minitest/test_task"
|
5
|
+
require "tmpdir"
|
6
|
+
require "fileutils"
|
5
7
|
|
6
8
|
Minitest::TestTask.create do |t|
|
7
9
|
t.verbose = true
|
8
10
|
end
|
9
11
|
|
12
|
+
# For this task to work, you need to have the reflection protos in a directory. You can find these
|
13
|
+
# here: https://github.com/grpc/grpc/tree/master/src/proto/grpc/reflection
|
14
|
+
# Add folders `v1` and `v1alpha` as shown in the tree above, then set `PROTO_DIR` to that
|
15
|
+
# directory and you can then run this task.
|
16
|
+
# Please note that the already-generated code likely does not need to be re-generated
|
17
|
+
# since these protos are extremely unlikely to change, so this task most likely does not
|
18
|
+
# need to be run.
|
19
|
+
task :update_code_generated_by_protoc do
|
20
|
+
proto_dir = ENV.fetch("PROTO_DIR")
|
21
|
+
Dir.chdir(proto_dir) do
|
22
|
+
system("bundle exec grpc_tools_ruby_protoc --ruby_out=./ --grpc_out=./ reflection.proto", exception: true)
|
23
|
+
end
|
24
|
+
|
25
|
+
service_file = "lib/grpc_reflection/reflection/v1/reflection_services_pb.rb"
|
26
|
+
FileUtils.mv("#{proto_dir}/reflection_services_pb.rb", service_file, force: true)
|
27
|
+
FileUtils.mv("#{proto_dir}/reflection_pb.rb", "lib/grpc_reflection/reflection/v1/reflection_pb.rb", force: true)
|
28
|
+
|
29
|
+
File.write(service_file, File.read(service_file).gsub(/require 'reflection_pb'/, "require_relative 'reflection_pb'"))
|
30
|
+
end
|
31
|
+
|
10
32
|
task default: :test
|
data/lib/grpc_reflection/{file_descriptor_manager.rb → file_descriptor_decorator_manager.rb}
RENAMED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
module GrpcReflection
|
4
4
|
module FileDescriptorManager
|
5
|
-
@@
|
5
|
+
@@file_descriptor_decorators = []
|
6
6
|
|
7
7
|
class << self
|
8
8
|
def add(descriptor)
|
9
|
-
@@
|
9
|
+
@@file_descriptor_decorators << GrpcReflection::FileDescriptorDecorator.new(descriptor)
|
10
10
|
end
|
11
11
|
|
12
12
|
def select(name)
|
13
|
-
file_descriptor = @@
|
13
|
+
file_descriptor = @@file_descriptor_decorators.detect { |f| f.service_and_method_names[name] }
|
14
14
|
return [] if file_descriptor.nil?
|
15
15
|
|
16
16
|
result = {}
|
@@ -18,7 +18,7 @@ module GrpcReflection
|
|
18
18
|
dependencies = file_descriptor.dependency.dup
|
19
19
|
until dependencies.empty?
|
20
20
|
dependency = dependencies.shift
|
21
|
-
dependent_file_descriptor = @@
|
21
|
+
dependent_file_descriptor = @@file_descriptor_decorators.detect { |f| f.filename == dependency }
|
22
22
|
dependencies.push(*dependent_file_descriptor.dependency)
|
23
23
|
result[dependent_file_descriptor.filename] = dependent_file_descriptor.descriptor_data
|
24
24
|
end
|
@@ -1,35 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
-
# source:
|
3
|
+
# source: reflection.proto
|
4
4
|
|
5
5
|
require 'google/protobuf'
|
6
6
|
|
7
7
|
|
8
|
-
descriptor_data = "\n
|
8
|
+
descriptor_data = "\n\x10reflection.proto\x12\x12grpc.reflection.v1\"\x85\x02\n\x17ServerReflectionRequest\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x1a\n\x10\x66ile_by_filename\x18\x03 \x01(\tH\x00\x12 \n\x16\x66ile_containing_symbol\x18\x04 \x01(\tH\x00\x12I\n\x19\x66ile_containing_extension\x18\x05 \x01(\x0b\x32$.grpc.reflection.v1.ExtensionRequestH\x00\x12\'\n\x1d\x61ll_extension_numbers_of_type\x18\x06 \x01(\tH\x00\x12\x17\n\rlist_services\x18\x07 \x01(\tH\x00\x42\x11\n\x0fmessage_request\"E\n\x10\x45xtensionRequest\x12\x17\n\x0f\x63ontaining_type\x18\x01 \x01(\t\x12\x18\n\x10\x65xtension_number\x18\x02 \x01(\x05\"\xb8\x03\n\x18ServerReflectionResponse\x12\x12\n\nvalid_host\x18\x01 \x01(\t\x12\x45\n\x10original_request\x18\x02 \x01(\x0b\x32+.grpc.reflection.v1.ServerReflectionRequest\x12N\n\x18\x66ile_descriptor_response\x18\x04 \x01(\x0b\x32*.grpc.reflection.v1.FileDescriptorResponseH\x00\x12U\n\x1e\x61ll_extension_numbers_response\x18\x05 \x01(\x0b\x32+.grpc.reflection.v1.ExtensionNumberResponseH\x00\x12I\n\x16list_services_response\x18\x06 \x01(\x0b\x32\'.grpc.reflection.v1.ListServiceResponseH\x00\x12;\n\x0e\x65rror_response\x18\x07 \x01(\x0b\x32!.grpc.reflection.v1.ErrorResponseH\x00\x42\x12\n\x10message_response\"7\n\x16\x46ileDescriptorResponse\x12\x1d\n\x15\x66ile_descriptor_proto\x18\x01 \x03(\x0c\"K\n\x17\x45xtensionNumberResponse\x12\x16\n\x0e\x62\x61se_type_name\x18\x01 \x01(\t\x12\x18\n\x10\x65xtension_number\x18\x02 \x03(\x05\"K\n\x13ListServiceResponse\x12\x34\n\x07service\x18\x01 \x03(\x0b\x32#.grpc.reflection.v1.ServiceResponse\"\x1f\n\x0fServiceResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\":\n\rErrorResponse\x12\x12\n\nerror_code\x18\x01 \x01(\x05\x12\x15\n\rerror_message\x18\x02 \x01(\t2\x89\x01\n\x10ServerReflection\x12u\n\x14ServerReflectionInfo\x12+.grpc.reflection.v1.ServerReflectionRequest\x1a,.grpc.reflection.v1.ServerReflectionResponse(\x01\x30\x01\x42\x66\n\x15io.grpc.reflection.v1B\x15ServerReflectionProtoP\x01Z4google.golang.org/grpc/reflection/grpc_reflection_v1b\x06proto3"
|
9
9
|
|
10
10
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
11
|
-
|
12
|
-
begin
|
13
|
-
pool.add_serialized_file(descriptor_data)
|
14
|
-
rescue TypeError
|
15
|
-
# Compatibility code: will be removed in the next major version.
|
16
|
-
require 'google/protobuf/descriptor_pb'
|
17
|
-
parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
|
18
|
-
parsed.clear_dependency
|
19
|
-
serialized = parsed.class.encode(parsed)
|
20
|
-
file = pool.add_serialized_file(serialized)
|
21
|
-
warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
|
22
|
-
imports = [
|
23
|
-
]
|
24
|
-
imports.each do |type_name, expected_filename|
|
25
|
-
import_file = pool.lookup(type_name).file_descriptor
|
26
|
-
if import_file.name != expected_filename
|
27
|
-
warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
warn "Each proto file must use a consistent fully-qualified name."
|
31
|
-
warn "This will become an error in the next major version."
|
32
|
-
end
|
11
|
+
pool.add_serialized_file(descriptor_data)
|
33
12
|
|
34
13
|
module Grpc
|
35
14
|
module Reflection
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# Source:
|
2
|
+
# Source: reflection.proto for package 'grpc.reflection.v1'
|
3
3
|
# Original file comments:
|
4
4
|
# Copyright 2016 The gRPC Authors
|
5
5
|
#
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: reflection_v1alpha.proto
|
4
|
+
|
5
|
+
require 'google/protobuf'
|
6
|
+
|
7
|
+
|
8
|
+
descriptor_data = "\n\x18reflection_v1alpha.proto\x12\x17grpc.reflection.v1alpha\"\x8a\x02\n\x17ServerReflectionRequest\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x1a\n\x10\x66ile_by_filename\x18\x03 \x01(\tH\x00\x12 \n\x16\x66ile_containing_symbol\x18\x04 \x01(\tH\x00\x12N\n\x19\x66ile_containing_extension\x18\x05 \x01(\x0b\x32).grpc.reflection.v1alpha.ExtensionRequestH\x00\x12\'\n\x1d\x61ll_extension_numbers_of_type\x18\x06 \x01(\tH\x00\x12\x17\n\rlist_services\x18\x07 \x01(\tH\x00\x42\x11\n\x0fmessage_request\"E\n\x10\x45xtensionRequest\x12\x17\n\x0f\x63ontaining_type\x18\x01 \x01(\t\x12\x18\n\x10\x65xtension_number\x18\x02 \x01(\x05\"\xd1\x03\n\x18ServerReflectionResponse\x12\x12\n\nvalid_host\x18\x01 \x01(\t\x12J\n\x10original_request\x18\x02 \x01(\x0b\x32\x30.grpc.reflection.v1alpha.ServerReflectionRequest\x12S\n\x18\x66ile_descriptor_response\x18\x04 \x01(\x0b\x32/.grpc.reflection.v1alpha.FileDescriptorResponseH\x00\x12Z\n\x1e\x61ll_extension_numbers_response\x18\x05 \x01(\x0b\x32\x30.grpc.reflection.v1alpha.ExtensionNumberResponseH\x00\x12N\n\x16list_services_response\x18\x06 \x01(\x0b\x32,.grpc.reflection.v1alpha.ListServiceResponseH\x00\x12@\n\x0e\x65rror_response\x18\x07 \x01(\x0b\x32&.grpc.reflection.v1alpha.ErrorResponseH\x00\x42\x12\n\x10message_response\"7\n\x16\x46ileDescriptorResponse\x12\x1d\n\x15\x66ile_descriptor_proto\x18\x01 \x03(\x0c\"K\n\x17\x45xtensionNumberResponse\x12\x16\n\x0e\x62\x61se_type_name\x18\x01 \x01(\t\x12\x18\n\x10\x65xtension_number\x18\x02 \x03(\x05\"P\n\x13ListServiceResponse\x12\x39\n\x07service\x18\x01 \x03(\x0b\x32(.grpc.reflection.v1alpha.ServiceResponse\"\x1f\n\x0fServiceResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\":\n\rErrorResponse\x12\x12\n\nerror_code\x18\x01 \x01(\x05\x12\x15\n\rerror_message\x18\x02 \x01(\t2\x93\x01\n\x10ServerReflection\x12\x7f\n\x14ServerReflectionInfo\x12\x30.grpc.reflection.v1alpha.ServerReflectionRequest\x1a\x31.grpc.reflection.v1alpha.ServerReflectionResponse(\x01\x30\x01\x62\x06proto3"
|
9
|
+
|
10
|
+
pool = Google::Protobuf::DescriptorPool.generated_pool
|
11
|
+
pool.add_serialized_file(descriptor_data)
|
12
|
+
|
13
|
+
module Grpc
|
14
|
+
module Reflection
|
15
|
+
module V1alpha
|
16
|
+
ServerReflectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ServerReflectionRequest").msgclass
|
17
|
+
ExtensionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ExtensionRequest").msgclass
|
18
|
+
ServerReflectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ServerReflectionResponse").msgclass
|
19
|
+
FileDescriptorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.FileDescriptorResponse").msgclass
|
20
|
+
ExtensionNumberResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ExtensionNumberResponse").msgclass
|
21
|
+
ListServiceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ListServiceResponse").msgclass
|
22
|
+
ServiceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ServiceResponse").msgclass
|
23
|
+
ErrorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.reflection.v1alpha.ErrorResponse").msgclass
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# Source: reflection_v1alpha.proto for package 'grpc.reflection.v1alpha'
|
3
|
+
# Original file comments:
|
4
|
+
# Copyright 2016 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
|
+
# Service exported by server reflection
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'grpc'
|
22
|
+
require_relative 'reflection_v1alpha_pb'
|
23
|
+
|
24
|
+
module Grpc
|
25
|
+
module Reflection
|
26
|
+
module V1alpha
|
27
|
+
module ServerReflection
|
28
|
+
class Service
|
29
|
+
|
30
|
+
include ::GRPC::GenericService
|
31
|
+
|
32
|
+
self.marshal_class_method = :encode
|
33
|
+
self.unmarshal_class_method = :decode
|
34
|
+
self.service_name = 'grpc.reflection.v1alpha.ServerReflection'
|
35
|
+
|
36
|
+
# The reflection service is structured as a bidirectional stream, ensuring
|
37
|
+
# all related requests go to a single server.
|
38
|
+
rpc :ServerReflectionInfo, stream(::Grpc::Reflection::V1alpha::ServerReflectionRequest), stream(::Grpc::Reflection::V1alpha::ServerReflectionResponse)
|
39
|
+
end
|
40
|
+
|
41
|
+
Stub = Service.rpc_stub_class
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -1,31 +1,11 @@
|
|
1
1
|
require "grpc"
|
2
2
|
require_relative "reflection/v1/reflection_services_pb"
|
3
|
+
require_relative 'server_shared'
|
3
4
|
|
4
5
|
class GrpcReflection::Server < Grpc::Reflection::V1::ServerReflection::Service
|
5
|
-
|
6
|
-
# TODO: support streaming call
|
7
|
-
request = req.first
|
8
|
-
|
9
|
-
res = Grpc::Reflection::V1::ServerReflectionResponse.new
|
10
|
-
# TODO: implement another responses
|
11
|
-
if request.list_services.size != 0
|
12
|
-
res.list_services_response = Grpc::Reflection::V1::ListServiceResponse.new(service: list_services_response)
|
13
|
-
elsif !request.file_containing_symbol.empty?
|
14
|
-
result = GrpcReflection::FileDescriptorManager.select(request.file_containing_symbol)
|
15
|
-
res.file_descriptor_response = Grpc::Reflection::V1::FileDescriptorResponse.new(file_descriptor_proto: result)
|
16
|
-
end
|
17
|
-
[res].enum_for(:each)
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
6
|
+
include GrpcReflection::ServerShared
|
21
7
|
|
22
|
-
def
|
23
|
-
|
24
|
-
proto_servie.service_name
|
25
|
-
end.uniq
|
26
|
-
end
|
27
|
-
|
28
|
-
def list_services_response
|
29
|
-
@list_services_response ||= service_names.map {|name| Grpc::Reflection::V1::ServiceResponse.new(name: name) }
|
8
|
+
def server_reflection_info(req, _unused_call)
|
9
|
+
server_reflection_info_response(req, Grpc::Reflection::V1)
|
30
10
|
end
|
31
11
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require "grpc"
|
2
|
+
require_relative "reflection/v1alpha/reflection_v1alpha_services_pb"
|
3
|
+
require_relative 'server_shared'
|
4
|
+
|
5
|
+
class GrpcReflection::ServerAlpha < Grpc::Reflection::V1alpha::ServerReflection::Service
|
6
|
+
include GrpcReflection::ServerShared
|
7
|
+
|
8
|
+
def server_reflection_info(req, _unused_call)
|
9
|
+
server_reflection_info_response(req, Grpc::Reflection::V1alpha)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module GrpcReflection
|
2
|
+
module ServerShared
|
3
|
+
def server_reflection_info_response(req, proto_module)
|
4
|
+
# TODO: support streaming call
|
5
|
+
request = req.first
|
6
|
+
|
7
|
+
res = proto_module::ServerReflectionResponse.new
|
8
|
+
# TODO: implement another responses
|
9
|
+
if request.list_services.size != 0
|
10
|
+
res.list_services_response = proto_module::ListServiceResponse.new(service: list_services_response(proto_module))
|
11
|
+
elsif !request.file_containing_symbol.empty?
|
12
|
+
result = GrpcReflection::FileDescriptorManager.select(request.file_containing_symbol)
|
13
|
+
res.file_descriptor_response = proto_module::FileDescriptorResponse.new(file_descriptor_proto: result)
|
14
|
+
elsif !request.file_by_filename.empty?
|
15
|
+
|
16
|
+
end
|
17
|
+
[res].enum_for(:each)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def main_server
|
23
|
+
@main_server ||= ObjectSpace.each_object(GRPC::RpcServer).to_a[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
def service_names
|
27
|
+
@service_names ||= main_server.send(:rpc_descs).keys.map { |k| k.to_s.split('/')[1] }.uniq
|
28
|
+
end
|
29
|
+
|
30
|
+
def list_services_response(proto_module)
|
31
|
+
@list_services_response ||= service_names.map {|name| proto_module::ServiceResponse.new(name: name) }
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
data/lib/grpc_reflection.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "grpc_reflection/version"
|
4
|
-
require_relative "grpc_reflection/
|
5
|
-
require_relative "grpc_reflection/
|
4
|
+
require_relative "grpc_reflection/file_descriptor_decorator"
|
5
|
+
require_relative "grpc_reflection/file_descriptor_decorator_manager"
|
6
6
|
require_relative "grpc_reflection/protobuf_ext"
|
7
7
|
require_relative "grpc_reflection/server"
|
8
|
+
require_relative "grpc_reflection/server_alpha"
|
8
9
|
|
9
10
|
module GrpcReflection; end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grpc_reflection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Yaginuma
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-09 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: grpc
|
@@ -24,23 +23,27 @@ dependencies:
|
|
24
23
|
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '0'
|
27
|
-
description:
|
28
26
|
email:
|
29
27
|
- yuuji.yaginuma@gmail.com
|
30
28
|
executables: []
|
31
29
|
extensions: []
|
32
30
|
extra_rdoc_files: []
|
33
31
|
files:
|
32
|
+
- CHANGELOG.md
|
34
33
|
- LICENSE.txt
|
35
34
|
- README.md
|
36
35
|
- Rakefile
|
37
36
|
- lib/grpc_reflection.rb
|
38
|
-
- lib/grpc_reflection/
|
39
|
-
- lib/grpc_reflection/
|
37
|
+
- lib/grpc_reflection/file_descriptor_decorator.rb
|
38
|
+
- lib/grpc_reflection/file_descriptor_decorator_manager.rb
|
40
39
|
- lib/grpc_reflection/protobuf_ext.rb
|
41
40
|
- lib/grpc_reflection/reflection/v1/reflection_pb.rb
|
42
41
|
- lib/grpc_reflection/reflection/v1/reflection_services_pb.rb
|
42
|
+
- lib/grpc_reflection/reflection/v1alpha/reflection_v1alpha_pb.rb
|
43
|
+
- lib/grpc_reflection/reflection/v1alpha/reflection_v1alpha_services_pb.rb
|
43
44
|
- lib/grpc_reflection/server.rb
|
45
|
+
- lib/grpc_reflection/server_alpha.rb
|
46
|
+
- lib/grpc_reflection/server_shared.rb
|
44
47
|
- lib/grpc_reflection/version.rb
|
45
48
|
homepage: https://github.com/y-yagi/grpc_reflection
|
46
49
|
licenses:
|
@@ -48,7 +51,6 @@ licenses:
|
|
48
51
|
metadata:
|
49
52
|
homepage_uri: https://github.com/y-yagi/grpc_reflection
|
50
53
|
rubygems_mfa_required: 'true'
|
51
|
-
post_install_message:
|
52
54
|
rdoc_options: []
|
53
55
|
require_paths:
|
54
56
|
- lib
|
@@ -63,8 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
65
|
- !ruby/object:Gem::Version
|
64
66
|
version: '0'
|
65
67
|
requirements: []
|
66
|
-
rubygems_version: 3.
|
67
|
-
signing_key:
|
68
|
+
rubygems_version: 3.6.2
|
68
69
|
specification_version: 4
|
69
70
|
summary: GRPC Server Reflection Protocol for Ruby
|
70
71
|
test_files: []
|