class ProblemDetails::Document

The class that implements a Problem Details JSON object described in RFC 7807.

Attributes

detail[RW]
instance[RW]
status[RW]
title[RW]
type[RW]

Public Class Methods

new(params = {}) click to toggle source
# File lib/problem_details/document.rb, line 12
def initialize(params = {})
  params = params.dup
  @type = params.delete(:type)
  @status = Rack::Utils.status_code(params.delete(:status)) if params.key?(:status)
  @title = params.delete(:title) || (@status ? ::Rack::Utils::HTTP_STATUS_CODES[@status] : nil)
  @detail = params.delete(:detail)
  @instance = params.delete(:instance)
  @extentions = params
end

Public Instance Methods

to_h()
Alias for: to_hash
to_hash() click to toggle source
# File lib/problem_details/document.rb, line 22
def to_hash
  h = {}
  %i[type title status detail instance].each do |key|
    value = public_send(key)
    h[key] = value if value
  end
  h.merge(@extentions)
end
Also aliased as: to_h
to_json() click to toggle source
# File lib/problem_details/document.rb, line 32
def to_json
  to_hash.to_json
end