Sha256: e23a42a86dfbdcee22a7c0031fc8f7635379469c6cfa087aef80e2c853846d24
Contents?: true
Size: 1.03 KB
Versions: 14
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require 'grpc_kit/interceptors' module GrpcKit module Interceptors::Client class RequestResponse # @param interceptors [Array<GrpcKit::Grpc::ClientInterceptor>] def initialize(interceptors) @registry = GrpcKit::InterceptorRegistry.new(interceptors) end # @param call [GrpcKit::Calls::Client::RequestResponse] # @param metadata [Hash<String,String>] # @yieldreturn [Object] Response object server sent def intercept(request, call, metadata, &block) do_intercept(@registry.build, request, call, metadata, &block) end private 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 end end end
Version data entries
14 entries across 14 versions & 1 rubygems