Exception: GH::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/gh/error.rb

Direct Known Subclasses

TokenInvalid

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(error = nil, payload = nil, info = {}) ⇒ Error

Returns a new instance of Error.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/gh/error.rb', line 9

def initialize(error = nil, payload = nil, info = {})
  super(error)

  info = info.merge(error.info) if error.respond_to?(:info) && error.info.is_a?(Hash)
  error = error.error while error.respond_to? :error
  @info = info.merge(error:, payload:)

  return unless error

  set_backtrace error.backtrace if error.respond_to? :backtrace
  return unless error.respond_to?(:response) && error.response

  case response = error.response
  when Hash
    @info[:response_status] = response[:status]
    @info[:response_headers] = response[:headers]
    @info[:response_body] = response[:body]
  when Faraday::Response
    @info[:response_status] = response.status
    @info[:response_headers] = response.headers
    @info[:response_body] = response.body
  else
    @info[:response] = response
  end
end

Instance Attribute Details

#infoObject (readonly)

Returns the value of attribute info.



7
8
9
# File 'lib/gh/error.rb', line 7

def info
  @info
end

Instance Method Details

#errorObject



39
40
41
# File 'lib/gh/error.rb', line 39

def error
  info[:error]
end

#messageObject



43
44
45
# File 'lib/gh/error.rb', line 43

def message
  (['GH request failed'] + info.map { |k, v| entry(k, v) }).join("\n")
end

#payloadObject



35
36
37
# File 'lib/gh/error.rb', line 35

def payload
  info[:payload]
end