class GrpcKit::Interceptors::Client::RequestResponse
Public Class Methods
new(interceptors)
click to toggle source
@param interceptors [Array<GrpcKit::Grpc::ClientInterceptor>]
# File lib/grpc_kit/interceptors/client_request_response.rb, line 9 def initialize(interceptors) @registry = GrpcKit::InterceptorRegistry.new(interceptors) end
Public Instance Methods
intercept(request, call, metadata, &block)
click to toggle source
@param call [GrpcKit::Calls::Client::RequestResponse] @param metadata [Hash<String,String>] @yieldreturn [Object] Response object server sent
# File lib/grpc_kit/interceptors/client_request_response.rb, line 16 def intercept(request, call, metadata, &block) do_intercept(@registry.build, request, call, metadata, &block) end
Private Instance Methods
do_intercept(interceptors, request, call, metadata) { || ... }
click to toggle source
# File lib/grpc_kit/interceptors/client_request_response.rb, line 22 def do_intercept(interceptors, request, call, metadata) if interceptors.empty? return yield end interceptor = interceptors.pop interceptor.request_response(request: request, call: call, method: call.method, metadata: metadata) do do_intercept(interceptors, request, call, metadata) do yield end end end