Module: GrpcInterceptors::Common::GrpcHelper
- Defined in:
- lib/grpc_interceptors/common/grpc_helper.rb
Class Method Summary collapse
- .method_name(method) ⇒ Object
- .method_name_from_client(method) ⇒ Object
- .method_name_from_server(method) ⇒ Object
-
.proto_to_h(proto) ⇒ Object
converts proto message to a Ruby hash preserving the original fields’ names and including default values WARNING! It can be slow and not 100% accurate.
- .route_name(method) ⇒ Object
- .service_name(method) ⇒ Object
- .service_name_from_client(method) ⇒ Object
- .service_name_from_server(method) ⇒ Object
Class Method Details
.method_name(method) ⇒ Object
22 23 24 25 26 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 22 def self.method_name(method) return method_name_from_server(method) if method.is_a?(Method) # server case method_name_from_client(method) # client case end |
.method_name_from_client(method) ⇒ Object
41 42 43 44 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 41 def self.method_name_from_client(method) method_parts = method.to_s.sub(%r{^/}, '').split('/') method_parts[1..].join('/') end |
.method_name_from_server(method) ⇒ Object
32 33 34 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 32 def self.method_name_from_server(method) method.original_name.to_s end |
.proto_to_h(proto) ⇒ Object
converts proto message to a Ruby hash preserving the original fields’ names and including default values WARNING! It can be slow and not 100% accurate. In this gem it’s only used in the DEBUG mode related comment: github.com/protocolbuffers/protobuf/issues/6755#issuecomment-733880977
50 51 52 53 54 55 56 57 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 50 def self.proto_to_h(proto) JSON( proto.to_json( emit_defaults: true, preserve_proto_fieldnames: true ) ) end |
.route_name(method) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 6 def self.route_name(method) return method unless method.is_a?(Method) # client case # server case service_name = service_name_from_server(method) method_name = method_name_from_server(method) "/#{service_name}/#{method_name}" end |
.service_name(method) ⇒ Object
16 17 18 19 20 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 16 def self.service_name(method) return service_name_from_server(method) if method.is_a?(Method) # server case service_name_from_client(method) # client case end |
.service_name_from_client(method) ⇒ Object
36 37 38 39 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 36 def self.service_name_from_client(method) method_parts = method.to_s.sub(%r{^/}, '').split('/') method_parts.first end |
.service_name_from_server(method) ⇒ Object
28 29 30 |
# File 'lib/grpc_interceptors/common/grpc_helper.rb', line 28 def self.service_name_from_server(method) method.owner.service_name.to_s end |