Sha256: 35557c46664732288769d3756c5e590ee9b7be1d821f17743954397f95c51366
Contents?: true
Size: 1017 Bytes
Versions: 1
Compression:
Stored size: 1017 Bytes
Contents
# frozen_string_literal: true require 'grpc_kit/interceptors' require 'grpc_kit/interceptor_registory' module GrpcKit module Interceptors::Server class RequestResponse # @param interceptors [Array<GrpcKit::GRPC::ServerInterceptor>] def initialize(interceptors) @registry = GrpcKit::InterceptorRegistry.new(interceptors) end # @param request [Object] Recevied request objects # @param call [GrpcKit::Calls::Client::RequestResponse] # @yieldreturn [Object] Response object server sent def intercept(request, call, &block) do_intercept(@registry.build, request, call, &block) end private def do_intercept(interceptors, request, call) if interceptors.empty? return yield end interceptor = interceptors.pop interceptor.request_response(request: request, call: call, method: call.method) do do_intercept(interceptors, request, call) { yield } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
grpc_kit-0.2.0 | lib/grpc_kit/interceptors/server_request_response.rb |