class RedmineAirbrakeBackend::BacktraceElement
Backtrace element received by airbrake
Constants
- DEFAULT_ROOT
Attributes
column[R]
file[R]
function[R]
line[R]
root[R]
Public Class Methods
new(data)
click to toggle source
# File lib/redmine_airbrake_backend/backtrace_element.rb, line 12 def initialize(data) @root, @file = parse_root_and_file(data[:file].presence) @line = data[:line].presence @function = data[:function].presence @column = data[:column].presence end
Public Instance Methods
checksum()
click to toggle source
# File lib/redmine_airbrake_backend/backtrace_element.rb, line 19 def checksum @checksum ||= Digest::MD5.hexdigest("#{root}|#{file}|#{normalized_function_name}|#{line}|#{column}") end
formatted_file()
click to toggle source
# File lib/redmine_airbrake_backend/backtrace_element.rb, line 23 def formatted_file if root.undefined? file else "[#{root.upcase}_ROOT]#{file}" end end
Private Instance Methods
normalized_function_name()
click to toggle source
# File lib/redmine_airbrake_backend/backtrace_element.rb, line 43 def normalized_function_name name = @function .downcase .gsub(/([\d_]+$)?/, '') # ruby blocks RedmineAirbrakeBackend.filter(name) end
parse_root_and_file(file)
click to toggle source
# File lib/redmine_airbrake_backend/backtrace_element.rb, line 33 def parse_root_and_file(file) return DEFAULT_ROOT, file if file.blank? match = %r{\A/([A-Z]+)_ROOT(/.+)}.match(file.strip) return ActiveSupport::StringInquirer.new(match[1].downcase), match[2].strip if match.present? [DEFAULT_ROOT, file] end