module Erratum::Error

Attributes

code[W]
detail[W]
developer_documentation_url[W]
external_documentation_url[W]
http_status[W]
id[W]
message[W]
source[W]
title[W]

Public Class Methods

included(base) click to toggle source
# File lib/erratum/error.rb, line 100
def self.included(base)
  base.extend ClassMethods
end
new(**args) click to toggle source
# File lib/erratum/error.rb, line 30
def initialize(**args)
  args.each do |variable, value|
    public_send("#{variable}=", value)
  end
end

Public Instance Methods

as_json(_options = {}) click to toggle source
# File lib/erratum/error.rb, line 36
def as_json(_options = {})
  {
    id:     id,
    links:  {
      about:         external_documentation_url,
      documentation: developer_documentation_url,
    },
    status: http_status,
    code:   code,
    title:  title,
    detail: detail,
    source: source,
  }
end
code() click to toggle source
# File lib/erratum/error.rb, line 73
def code
  @code ||= self.class.name
              .underscore
              .gsub(%r{\A[^/]+/}, '')
              .gsub(%r{/}, '.')
end
detail() click to toggle source
# File lib/erratum/error.rb, line 84
def detail
  @detail ||= 'The server encountered an error.'
end
developer_documentation_url() click to toggle source
# File lib/erratum/error.rb, line 63
def developer_documentation_url
  @developer_documentation_url ||= configuration.developer_documentation_urls[code]
end
external_documentation_url() click to toggle source
# File lib/erratum/error.rb, line 59
def external_documentation_url
  @external_documentation_url ||= configuration.external_documentation_urls[code]
end
http_status() click to toggle source
# File lib/erratum/error.rb, line 67
def http_status
  @http_status ||= 500
end
Also aliased as: status
id() click to toggle source
# File lib/erratum/error.rb, line 55
def id
  @id ||= SecureRandom.uuid
end
message() click to toggle source
# File lib/erratum/error.rb, line 92
def message
  to_s
end
source() click to toggle source
# File lib/erratum/error.rb, line 88
def source
  @source ||= {}
end
status()
Alias for: http_status
title() click to toggle source
# File lib/erratum/error.rb, line 80
def title
  @title ||= self.class.name
end
to_json(_options = {}) click to toggle source
# File lib/erratum/error.rb, line 51
def to_json(_options = {})
  JSON.dump(as_json)
end
to_s() click to toggle source
# File lib/erratum/error.rb, line 96
def to_s
  @message || detail
end