Class: LogBrew::RecordingTransport

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scripted_responses = [202]) ⇒ RecordingTransport

Returns a new instance of RecordingTransport.



122
123
124
125
# File 'lib/logbrew.rb', line 122

def initialize(scripted_responses = [202])
  @scripted_responses = scripted_responses.empty? ? [202] : scripted_responses.dup
  @sent_bodies = []
end

Instance Attribute Details

#sent_bodiesObject (readonly)

Returns the value of attribute sent_bodies.



120
121
122
# File 'lib/logbrew.rb', line 120

def sent_bodies
  @sent_bodies
end

Class Method Details

.always_acceptObject



127
128
129
# File 'lib/logbrew.rb', line 127

def self.always_accept
  new([202])
end

Instance Method Details

#last_bodyObject



131
132
133
# File 'lib/logbrew.rb', line 131

def last_body
  @sent_bodies[-1]
end

#send(api_key, body) ⇒ Object



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/logbrew.rb', line 135

def send(api_key, body)
  Validation.require_non_empty("api_key", api_key)
  @sent_bodies << body

  response = @scripted_responses.empty? ? 202 : @scripted_responses.shift
  raise response if response.is_a?(TransportError)
  raise response if response.is_a?(SdkError)

  status_code = response.is_a?(TransportResponse) ? response.status_code : response.to_i
  TransportResponse.new(status_code.zero? ? 202 : status_code, 1)
end