Sha256: 8566998d31e6e950c5ea760df6c8cabf2d6a2dcbb2b4c16576042f46bdd1d62f

Contents?: true

Size: 806 Bytes

Versions: 1

Compression:

Stored size: 806 Bytes

Contents

# frozen_string_literal: true

module GrpcKit
  class InterceptorRegistry
    def initialize(interceptors)
      @interceptors = interceptors

      validate_interceptors
    end

    def build
      @interceptors.dup
    end

    private

    def validate_interceptors
      unless @interceptors
        raise ArgumentError, 'interceptors must not be nil'
      end

      if @interceptors.empty?
        raise ArgumentError, 'interceptors must not be empty'
      end

      invalid_interceptors = @interceptors.reject do |interceptor|
        interceptor.class.ancestors.include?(GrpcKit::GRPC::Interceptor)
      end

      unless invalid_interceptors.empty?
        raise ArgumentError, "interceptor #{invalid_interceptors} must descend from #{GrpcKit::GRPC::Interceptor}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grpc_kit-0.2.0 lib/grpc_kit/interceptor_registory.rb