Sha256: 58e3f9f0fbcf02f5a6da2f640adc0942f88c687a8ff30babf122812002ea66b8
Contents?: true
Size: 899 Bytes
Versions: 1
Compression:
Stored size: 899 Bytes
Contents
# frozen_string_literal: true module MinatoErrorHandler module ErrorHandler extend ActiveSupport::Concern included do rescue_from StandardError, with: :handle end def default_error_class(klass) @default_error_class = klass.to_s.camelize.constantize end private def handle(exception) error = parse_error(exception) report_error(error) render json: { errors: [error.as_json] }, status: error.status_code end def parse_error(error) return error if error.is_a?(MinatoErrorHandler::MinatoError) error_class = @default_error_class || MinatoErrorHandler::UnknowError minato_error = error_class.new minato_error.caused_by = error.full_message minato_error.set_backtrace(error.backtrace) minato_error end def report_error(error) Rails.logger.error(error.as_json) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
minato_error_handler-0.1.2.pre.2 | lib/minato_error_handler/error_handler.rb |