class Yrpc::Controllers::Request
Attributes
active_call[R]
@var [GRPC::ActiveCall] active_call
message[R]
method_key[R]
@var [Symbol] method_key
service[R]
@var [Class] service
type[R]
@var [Grpc::Controllers::Request::Type] type
Public Class Methods
new(method_key:, service:, rpc_desc:, active_call:, message:)
click to toggle source
struct GRPC::RpcDesc
# File lib/yrpc/controllers/request.rb, line 38 def initialize(method_key:, service:, rpc_desc:, active_call:, message:) @method_key = method_key @service = service @active_call = active_call @message = message @rpc_desc = rpc_desc @type = Type.new(rpc_desc) end
Public Instance Methods
messages() { |msg| ... }
click to toggle source
返回这个request的所有mesage 要根据stremer类型来判断
# File lib/yrpc/controllers/request.rb, line 80 def messages if client_streamer? message.call { |msg| yield msg } elsif bidi_streamer? message else [message] end end
method_missing(method_id, *arguments, &block)
click to toggle source
Calls superclass method
# File lib/yrpc/controllers/request.rb, line 52 def method_missing(method_id, *arguments, &block) method_message = *arguments.join if (method_id.to_s =~ /^raise_[\w]+/) == 0 error_type = method_id.to_s.split('raise_')[1].upcase! code = "Yrpc::Response::Code::#{error_type}".constantize message = method_message raise Yrpc::Error::ResponseError.new(code, message) else super end end
method_name()
click to toggle source
grpc 中的 service.method
# File lib/yrpc/controllers/request.rb, line 75 def method_name "#{service_key}.#{method_key}" end
request_class()
click to toggle source
# File lib/yrpc/controllers/request.rb, line 70 def request_class @rpc_desc.input end
response_class()
click to toggle source
# File lib/yrpc/controllers/request.rb, line 65 def response_class @rpc_desc.output end
service_key()
click to toggle source
# File lib/yrpc/controllers/request.rb, line 48 def service_key @service.name.underscore.tr('/', '.').gsub('.service', '') end