Module: SmartLoggerWrapper::Utils::Backtrace

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

Class Method Summary collapse

Class Method Details

.clean_backtrace(backtrace, keeps_first: true) ⇒ Object



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

def clean_backtrace(backtrace, keeps_first: true)
  (
    if defined?(::Rails) && ::Rails.respond_to?(:backtrace_cleaner)
      if keeps_first
        head, *tail = backtrace
        [head] + Rails.backtrace_cleaner.filter(tail)
      else
        Rails.backtrace_cleaner.filter(backtrace)
      end
    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(start + 1))
  length == nil ? backtrace.to_a : backtrace.first(length)
end