Sha256: d8bcb06a6511acc35c35f480cb168fa94b0006dc4be92f59d49521c03007c6b4
Contents?: true
Size: 863 Bytes
Versions: 6
Compression:
Stored size: 863 Bytes
Contents
# encoding: utf-8 module Hyperdrive module Middleware class Error include Hyperdrive::Values def initialize(app) @app = app end def call(env) @app.call(env) rescue => e headers = { 'Content-Type' => 'application/json' } if e.respond_to?(:http_status_code) status = e.http_status_code body = [json_error(e)] else puts e.message status = 500 body = [json_error(Hyperdrive::Errors::UnknownError.new)] end [status, headers, body] end private def json_error(e) MultiJson.dump({ _links: { root: { href: '/', title: 'API Root' } }, error: { type: "#{e.class.to_s.split('::').last}", message: e.message } }) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems