Sha256: 2f12319948b321c96d275fbb42bd3e19bfc56479697c025f4c08e9a16a7f8060
Contents?: true
Size: 1.52 KB
Versions: 3
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module LightServiceExt class ErrorInfo attr_reader :error, :type, :message, :title def initialize(error, message: nil, fatal: false) @fatal = fatal @error = error @type = error.class.name @message = message || error.try(:message) @title = "#{error.class.name} : #{error&.message}" end def fatal_error? @fatal || !non_fatal_error? end def error_summary header = fatal_error? ? "SERVER ERROR FOUND" : "ERROR FOUND" <<~TEXT =========== #{header}: #{title} =========== FULL STACK TRACE #{clean_backtrace.join("\n")} #{'=' * 56} TEXT end def errors model = error.try(:model) || error.try(:record) message = model.present? ? model.errors.messages : error.message { base: message } end def to_h { type: type, message: message, exception: title, backtrace: clean_backtrace[0, 5]&.join("\n"), error: error, fatal_error?: fatal_error?, errors: errors } end def backtrace error&.backtrace || [] end def clean_backtrace @clean_backtrace ||= if defined? Rails.backtrace_cleaner Rails.backtrace_cleaner.clean(backtrace || []) else backtrace || [] end end def non_fatal_error? error.nil? || LightServiceExt.config.non_fatal_error?(error) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
light-service-ext-0.1.11 | lib/light-service-ext/error_info.rb |
light-service-ext-0.1.10 | lib/light-service-ext/error_info.rb |
light-service-ext-0.1.9 | lib/light-service-ext/error_info.rb |