Class: Skytap::Response

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload, error = nil, error_message = nil) ⇒ Response

Returns a new instance of Response.



28
29
30
31
32
33
34
# File 'lib/skytap/response.rb', line 28

def initialize(payload, error = nil, error_message = nil)
  @payload = payload
  @error = error
  if @error
    @error_message = error_message || @payload.to_s
  end
end

Instance Attribute Details

#payloadObject (readonly)

Returns the value of attribute payload.



26
27
28
# File 'lib/skytap/response.rb', line 26

def payload
  @payload
end

Class Method Details

.build(result, is_error = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/skytap/response.rb', line 3

def self.build(result, is_error=nil)
  case result
  when self
    result
  when Requester::Response
    is_error ||= result.code !~ /^[123]/
    if is_error && result.payload.is_a?(Hash)
      err_msg = "Server error (code #{result.code}): " +
        (result.payload['error'] ||
         result.payload['errors'].try(:join, ' ') ||
         result.body)
    end
    new(result.payload, is_error, err_msg)
  when Skytap::Error
    new(result, true, result.to_s)
  when Exception
    log_exception(result)
    new(result, true, "Internal error: #{result}")
  else
    new(result, is_error)
  end
end

Instance Method Details

#error?Boolean

Returns:

  • (Boolean)


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

def error?
  @error
end

#error_messageObject



40
41
42
# File 'lib/skytap/response.rb', line 40

def error_message
  @error_message.color(:red).bright
end