class Ja::Error

Constants

ClientError

Base class for errors in the 4xx range

ResponseError

Base class for all errors

ServerError

Base class for errors in the 5xx range

Attributes

headline[R]
message[R]
response[R]
response_body[R]
to_s[R]
uri[R]
verb[R]

Public Class Methods

fetch_error_class(status) click to toggle source
# File lib/ja/error.rb, line 19
def self.fetch_error_class(status)
  const_get(HTTP::Response::Status::REASONS.fetch(status, "ResponseError").gsub(/\W/, ""))
end
new(verb, uri, response) click to toggle source
# File lib/ja/error.rb, line 25
def initialize(verb, uri, response)
  @response = response
  @verb = verb
  @uri = uri

  @headline = "%{verb} %{url} responded with %{status}" % {
    status:  response.status,
    verb:    verb.to_s.upcase,
    url:     uri.to_s,
  }

  @response_body = Ja.format_body(response.headers) { response.body.to_s }

  @message = @response_body ? "#{@headline}\n\n#{@response_body}" : @headline
end
to_exception(verb, uri, response) click to toggle source
# File lib/ja/error.rb, line 15
def self.to_exception(verb, uri, response)
  Error.fetch_error_class(response.status).new(verb, uri, response)
end

Public Instance Methods

status() click to toggle source
# File lib/ja/error.rb, line 45
def status
  response.status
end