Class: LHC::Response

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

Overview

The response contains the raw response (typhoeus) and provides functionality to access response data.

Defined Under Namespace

Classes: Data

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw, request, from_cache: false) ⇒ Response

A response is initalized with the underlying raw response (typhoeus in our case) and the associated request.



17
18
19
20
21
# File 'lib/lhc/response.rb', line 17

def initialize(raw, request, from_cache: false)
  self.request = request
  self.raw = raw
  @from_cache = from_cache
end

Instance Attribute Details

#body_replacementObject

Returns the value of attribute body_replacement.



8
9
10
# File 'lib/lhc/response.rb', line 8

def body_replacement
  @body_replacement
end

#from_cacheObject (readonly) Also known as: from_cache?

Returns the value of attribute from_cache.



9
10
11
# File 'lib/lhc/response.rb', line 9

def from_cache
  @from_cache
end

#requestObject

Returns the value of attribute request.



8
9
10
# File 'lib/lhc/response.rb', line 8

def request
  @request
end

Instance Method Details

#[](key) ⇒ Object



27
28
29
# File 'lib/lhc/response.rb', line 27

def [](key)
  data[key]
end

#bodyObject



31
32
33
# File 'lib/lhc/response.rb', line 31

def body
  body_replacement || raw.body.presence
end

#dataObject



23
24
25
# File 'lib/lhc/response.rb', line 23

def data
  @data ||= body.present? ? LHC::Response::Data.new(self) : nil
end

#formatObject



49
50
51
52
# File 'lib/lhc/response.rb', line 49

def format
  return LHC::Formats::JSON.new if request.nil?
  request.format
end

#timeObject

Provides response time in seconds



36
37
38
# File 'lib/lhc/response.rb', line 36

def time
  raw.time || 0
end

#time_msObject

Provides response time in milliseconds



41
42
43
# File 'lib/lhc/response.rb', line 41

def time_ms
  time * 1000
end

#timeout?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/lhc/response.rb', line 45

def timeout?
  raw.timed_out?
end