class SafetyGoggles::Handler
Constants
- ERROR_CODES
- SEVERITIES
Public Class Methods
get_backtrace(error)
click to toggle source
# File lib/safety_goggles/handler.rb, line 59 def self.get_backtrace(error) return [] unless error.respond_to?(:backtrace) return [] if error.backtrace.nil? error.backtrace.reject { |line| %r{/gems/}.match(line).present? } end
guess_env()
click to toggle source
# File lib/safety_goggles/handler.rb, line 72 def self.guess_env return Rails.env if defined?(Rails) && Rails.respond_to?(:env) "development" end
handle_error(error, env = Handler.guess_env)
click to toggle source
# File lib/safety_goggles/handler.rb, line 25 def self.handle_error(error, env = Handler.guess_env) logger.debug("::handle_error called with #{error}, #{env}") code = ERROR_CODES.fetch(error.class.to_s, 500) if code.nil? logger.error("ERROR: #{code} \n#{error.class} \n#{error}") logger.error(get_backtrace(error).join("\n")) handle_serious_error(error, code, env) if serious_env? code end
handle_serious_error(error, code, env)
click to toggle source
:nocov:
# File lib/safety_goggles/handler.rb, line 38 def self.handle_serious_error(error, code, env) logger.debug("::handle_serious_error called with #{error}, #{code}, #{env}") severity = SEVERITIES.fetch(code, "warning") Raven.capture_exception(error, extra: { nice_backtrace: get_backtrace(error) }, level: severity, tags: { code: code, class: error.class }) end
logger()
click to toggle source
# File lib/safety_goggles/handler.rb, line 66 def self.logger return Rails.logger if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger.present? Logger.new(STDOUT) end
serious_env?()
click to toggle source
:nocov:
# File lib/safety_goggles/handler.rb, line 49 def self.serious_env? return false unless defined?(Rails) # :nocov: # rubocop:disable Rails/UnknownEnv Rails.env.production? || Rails.env.staging? # rubocop:enable Rails/UnknownEnv # :nocov: end