Module: SmartLoggerWrapper::Utils::Backtrace

Included in:
Options::AppendBacktrace
Defined in:
lib/smart_logger_wrapper/utils/backtrace.rb

Class Method Summary collapse

Class Method Details

.clean_backtrace(backtrace) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/smart_logger_wrapper/utils/backtrace.rb', line 15

def clean_backtrace(backtrace)
  (
    if defined?(::Rails) && ::Rails.respond_to?(:backtrace_cleaner)
      head, *tail = backtrace
      [head] + Rails.backtrace_cleaner.filter(tail)
    else
      backtrace
    end
  ).map { |line| Path.trim_dirname(line) }
end

.get_backtrace(start, length = nil) ⇒ Object



9
10
11
12
13
# File 'lib/smart_logger_wrapper/utils/backtrace.rb', line 9

def get_backtrace(start, length = nil)
  # add 1 to `start` because this method dug the backtrace by 1
  backtrace = clean_backtrace(caller_locations(start + 1).map(&:to_s))
  length == nil ? backtrace.to_a : backtrace.first(length)
end