Class: Spikard::Testing::Response

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

Overview

:nodoc: Lightweight response wrapper used by the test client.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload) ⇒ Response

Returns a new instance of Response.



139
140
141
142
143
144
# File 'lib/spikard/response.rb', line 139

def initialize(payload)
  @status_code = payload[:status_code]
  @headers = payload[:headers] || {}
  @body = payload[:body]
  @body_text = payload[:body_text]
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



137
138
139
# File 'lib/spikard/response.rb', line 137

def body
  @body
end

#headersObject (readonly)

Returns the value of attribute headers.



137
138
139
# File 'lib/spikard/response.rb', line 137

def headers
  @headers
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



137
138
139
# File 'lib/spikard/response.rb', line 137

def status_code
  @status_code
end

Instance Method Details

#body_bytesObject



150
151
152
# File 'lib/spikard/response.rb', line 150

def body_bytes
  @body || ''.b
end

#body_textObject



154
155
156
# File 'lib/spikard/response.rb', line 154

def body_text
  @body_text || @body&.dup&.force_encoding(Encoding::UTF_8)
end

#bytesObject



168
169
170
# File 'lib/spikard/response.rb', line 168

def bytes
  body_bytes.bytes
end

#jsonObject



162
163
164
165
166
# File 'lib/spikard/response.rb', line 162

def json
  return nil if @body.nil? || @body.empty?

  JSON.parse(@body)
end

#statusObject



146
147
148
# File 'lib/spikard/response.rb', line 146

def status
  @status_code
end

#textObject



158
159
160
# File 'lib/spikard/response.rb', line 158

def text
  body_text
end