Class: CoreClientBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/smartystreets_ruby_sdk/core_client_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(signer) ⇒ CoreClientBuilder

Returns a new instance of CoreClientBuilder.



10
11
12
13
14
15
16
17
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 10

def initialize(signer)
  @signer = signer
  @serializer = NativeSerializer.new
  @http_sender = nil
  @max_retries = 5
  @max_timeout = 10000
  @url_prefix = ''
end

Instance Method Details

#buildObject



39
40
41
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 39

def build
  # Implemented in child classes
end

#build_senderObject



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 43

def build_sender
  return @http_sender if @http_sender != nil

  sender = NativeSender.new(@max_timeout)

  sender = StatusCodeSender.new(sender)

  sender = SigningSender.new(@signer, sender) if @signer != nil

  sender = RetrySender.new(@max_retries, sender, Sleeper.new) if @max_retries > 0

  URLPrefixSender.new(@url_prefix, sender)
end

#retry_at_most(max_retries) ⇒ Object



19
20
21
22
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 19

def retry_at_most(max_retries)
  @max_retries = max_retries
  self
end

#with_max_timeout(max_timeout) ⇒ Object



24
25
26
27
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 24

def with_max_timeout(max_timeout)
  @max_timeout = max_timeout
  self
end

#with_serializer(serializer) ⇒ Object



29
30
31
32
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 29

def with_serializer(serializer)
  @serializer = serializer
  self
end

#with_url(url_prefix) ⇒ Object



34
35
36
37
# File 'lib/smartystreets_ruby_sdk/core_client_builder.rb', line 34

def with_url(url_prefix)
  @url_prefix = url_prefix
  self
end