module PennyWise::ErrorHandler

Public Instance Methods

error() click to toggle source
# File lib/penny_wise/error_handler.rb, line 17
def error
  render_error(params[:code], PennyWise::Exceptions::RenderedErrorPageException.new)
end
error_report(exception) click to toggle source
# File lib/penny_wise/error_handler.rb, line 21
def error_report(exception)
  "#{exception.class} raised on #{request.fullpath}:" \
  "\n#{exception.message}" \
  "\nBacktrace:" \
  "\n#{exception.backtrace.join("\n")}"
end
render_error(code, exception) click to toggle source
# File lib/penny_wise/error_handler.rb, line 28
def render_error(code, exception)
  message, description = PennyWise.configuration.error_messages.fetch(code, PennyWise.configuration.unknown_error_message)
  error_logger = logger.method(code.to_i < 500 ? :info : :error)
  error_logger.call "#{code}: #{description}.\n" + error_report(exception)
  @code = code
  @message = message
  @description = description
  error_renderer(code)
rescue Exception => handler_exception
  logger.fatal error_report(PennyWise::Exceptions::ErrorHandlerException.new(exception, handler_exception))
  failure_renderer(500)
end