class Shaf::Responder::ProblemJson

Public Class Methods

can_handle?(resource) click to toggle source
# File lib/shaf/responder/problem_json.rb, line 6
def self.can_handle?(resource)
  klass = resource.is_a?(Class) ? resource : resource.class
  klass <= StandardError
end

Public Instance Methods

body() click to toggle source
# File lib/shaf/responder/problem_json.rb, line 11
def body
  JSON.generate(hash)
end

Private Instance Methods

code() click to toggle source
# File lib/shaf/responder/problem_json.rb, line 31
def code
  return resource.code if resource.respond_to? :code
  'about:blank'
end
hash() click to toggle source
# File lib/shaf/responder/problem_json.rb, line 17
def hash
  {
    status: controller.status,
    type: code,
    title: title,
    detail: resource.message,
  }
end
status() click to toggle source
# File lib/shaf/responder/problem_json.rb, line 26
def status
  return resource.http_status if resource.respond_to? :http_status
  controller.status
end
title() click to toggle source
# File lib/shaf/responder/problem_json.rb, line 36
def title
  return resource.title if resource.respond_to? :title
  resource.class.to_s
end