Skip to content
Snippets Groups Projects
Commit c32375c6 authored by Tim Emiola's avatar Tim Emiola
Browse files

Decompose the ClientStub initialize method

parent ee092fcc
No related branches found
No related tags found
No related merge requests found
...@@ -39,6 +39,25 @@ module GRPC ...@@ -39,6 +39,25 @@ module GRPC
# Default deadline is 5 seconds. # Default deadline is 5 seconds.
DEFAULT_DEADLINE = 5 DEFAULT_DEADLINE = 5
# setup_channel is used by #initialize to constuct a channel from its
# arguments.
def self.setup_channel(alt_chan, host, creds, **kw)
unless alt_chan.nil?
fail(TypeError, '!Channel') unless alt_chan.is_a?(Core::Channel)
return alt_chan
end
return Core::Channel.new(host, kw) if creds.nil?
fail(TypeError, '!Credentials') unless creds.is_a?(Core::Credentials)
Core::Channel.new(host, kw, creds)
end
# check_update_metadata is used by #initialize verify that it's a Proc.
def self.check_update_metadata(update_metadata)
return update_metadata if update_metadata.nil?
fail(TypeError, '!is_a?Proc') unless update_metadata.is_a?(Proc)
update_metadata
end
# Creates a new ClientStub. # Creates a new ClientStub.
# #
# Minimally, a stub is created with the just the host of the gRPC service # Minimally, a stub is created with the just the host of the gRPC service
...@@ -73,39 +92,15 @@ module GRPC ...@@ -73,39 +92,15 @@ module GRPC
# @param update_metadata a func that updates metadata as described above # @param update_metadata a func that updates metadata as described above
# @param kw [KeywordArgs]the channel arguments # @param kw [KeywordArgs]the channel arguments
def initialize(host, q, def initialize(host, q,
channel_override:nil, channel_override: nil,
deadline: DEFAULT_DEADLINE, deadline: DEFAULT_DEADLINE,
creds: nil, creds: nil,
update_metadata: nil, update_metadata: nil,
**kw) **kw)
unless q.is_a? Core::CompletionQueue fail(TypeError, '!CompletionQueue') unless q.is_a?(Core::CompletionQueue)
fail(ArgumentError, 'not a CompletionQueue')
end
@queue = q @queue = q
@ch = ClientStub.setup_channel(channel_override, host, creds, **kw)
# set the channel instance @update_metadata = ClientStub.check_update_metadata(update_metadata)
if !channel_override.nil?
ch = channel_override
fail(ArgumentError, 'not a Channel') unless ch.is_a? Core::Channel
else
if creds.nil?
ch = Core::Channel.new(host, kw)
elsif !creds.is_a?(Core::Credentials)
fail(ArgumentError, 'not a Credentials')
else
ch = Core::Channel.new(host, kw, creds)
end
end
@ch = ch
@update_metadata = nil
unless update_metadata.nil?
unless update_metadata.is_a? Proc
fail(ArgumentError, 'update_metadata is not a Proc')
end
@update_metadata = update_metadata
end
@host = host @host = host
@deadline = deadline @deadline = deadline
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment