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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50a57a22bb3e14c25b180db662c16e287fb03fda2b655d0d7a07d7d754db3c7c
4
- data.tar.gz: 7c2aa8ebfffed810aac0b16076da678f41a8d06f739704d1b181b2690a9f9a09
3
+ metadata.gz: a15bcd28006ba9366fe596a56989d689a8aaf52de246d629df7185585cb361b4
4
+ data.tar.gz: 57748ed036e8c034139590264803997d5192f3e7f20609c9dc367d41c3a5432c
5
5
  SHA512:
6
- metadata.gz: 02c069529b8159fb62b48cb1084ea878b217cbf10216d06ac3f6ad7007b216ca5bbe4dcba1f2f797beb895aee0062e960a1d028dd3d816219136387454449ad1
7
- data.tar.gz: ede585e0e42fb06ae22ab912c19aa83a700e4bebdd25405a43f83a42ff274c1122e2d3db3f1ad8e8c6214674788f581642d3ffb251e39c47a5762852864c5919
6
+ metadata.gz: 334661187410a4be8b4685be5d86de8c7efeac716ac2af0562880bb4379a8751bc0444467a08c44cb9ac5238c30141bf488e23b09e1ce42d3362f0a860a8ad69
7
+ data.tar.gz: 71823b0b9b61ffb7f31fbc7b07c3a9f5297cf17cab110152dbfa1f185e6761f5a2ced8eee2419bee97cc4df00407bfc55018295744d5270196ff4d5c8b42d2e5
data/CHANGELOG.md ADDED
@@ -0,0 +1,4 @@
1
+ ## 0.2.0
2
+
3
+ * Support V1 alpha #7 [dorner]
4
+ * Don't include services that are not being handled #7 [dorner]
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
@@ -4,7 +4,7 @@ require "json"
4
4
  require "google/protobuf/descriptor_pb"
5
5
 
6
6
  module GrpcReflection
7
- class FileDescriptor
7
+ class FileDescriptorDecorator
8
8
  attr_reader :service_and_method_names, :descriptor_data, :filename, :dependency
9
9
 
10
10
  def initialize(descriptor_data)
@@ -2,15 +2,15 @@
2
2
 
3
3
  module GrpcReflection
4
4
  module FileDescriptorManager
5
- @@file_descriptors = []
5
+ @@file_descriptor_decorators = []
6
6
 
7
7
  class << self
8
8
  def add(descriptor)
9
- @@file_descriptors << GrpcReflection::FileDescriptor.new(descriptor)
9
+ @@file_descriptor_decorators << GrpcReflection::FileDescriptorDecorator.new(descriptor)
10
10
  end
11
11
 
12
12
  def select(name)
13
- file_descriptor = @@file_descriptors.detect { |f| f.service_and_method_names[name] }
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 = @@file_descriptors.detect { |f| f.filename == dependency }
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: src/proto/grpc/reflection/v1/reflection.proto
3
+ # source: reflection.proto
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
7
 
8
- descriptor_data = "\n-src/proto/grpc/reflection/v1/reflection.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"
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: src/proto/grpc/reflection/v1/reflection.proto for package 'grpc.reflection.v1'
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
- def server_reflection_info(req, _unused_call)
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 service_names
23
- @service_names ||= ObjectSpace.each_object(Class).filter_map {|k| k if k.ancestors.include?(GRPC::GenericService) }.map do |proto_servie|
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrpcReflection
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "grpc_reflection/version"
4
- require_relative "grpc_reflection/file_descriptor"
5
- require_relative "grpc_reflection/file_descriptor_manager"
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.1.1
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: 2024-08-04 00:00:00.000000000 Z
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/file_descriptor.rb
39
- - lib/grpc_reflection/file_descriptor_manager.rb
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.5.11
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: []