class InfluxDB::Rails::ExceptionPresenter
Attributes
action[R]
backtrace[R]
controller[R]
current_user[R]
custom_data[R]
exception[R]
params[R]
referer[R]
remote_ip[R]
request_url[R]
session_data[R]
user_agent[R]
Public Class Methods
new(ex, params = {})
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 21 def initialize(ex, params = {}) ex = ex.continued_exception if ex.respond_to?(:continued_exception) ex = ex.original_exception if ex.respond_to?(:original_exception) @exception = ex.is_a?(String) ? Exception.new(ex) : ex @backtrace = InfluxDB::Rails::Backtrace.new(@exception.backtrace) @dimensions = {} configure_from_params(params) @environment_variables = ENV.to_hash || {} end
Public Instance Methods
context()
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 33 def context # rubocop:disable Metrics/MethodLength c = { application_name: InfluxDB::Rails.configuration.application_name, application_root: InfluxDB::Rails.configuration.application_root, framework: InfluxDB::Rails.configuration.framework, framework_version: InfluxDB::Rails.configuration.framework_version, language: "Ruby", language_version: "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}", custom_data: @custom_data, } InfluxDB::Rails.configuration.add_custom_exception_data(self) c end
dimensions()
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 48 def dimensions { class: @exception.class.to_s, method: "#{@controller}##{@action}", filename: File.basename(@backtrace.lines.first.try(:file)), server: Socket.gethostname, status: "open", }.merge(@dimensions) end
request_data()
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 65 def request_data { params: @params, session_data: @session_data, controller: @controller, action: @action, request_url: @request_url, referer: @referer, remote_ip: @remote_ip, user_agent: @user_agent, } end
values()
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 58 def values { exception_message: @exception.message, exception_backtrace: JSON.generate(@backtrace.to_a), } end
Private Instance Methods
configure_from_params(params)
click to toggle source
# File lib/influxdb/rails/exception_presenter.rb, line 80 def configure_from_params(params) @params = params[:params] @session_data = params[:session_data] || {} @current_user = params[:current_user] @controller = params[:controller] @action = params[:action] @request_url = params[:request_url] @user_agent = params[:user_agent] @referer = params[:referer] @remote_ip = params[:remote_ip] @custom_data = params[:custom_data] || {} end