module Stackify::Backtrace

Constants

ALL_TEXT_FROM_START_TO_FIRST_COLON_REGEXP
NUMBER_BETWEEN_TWO_COLONS_REGEXP
TEXT_AFTER_IN_BEFORE_END_REGEXP
TEXT_AFTER_IN_BEFORE_END_REGEXP_

Public Class Methods

backtrace_in_line(backtrace) click to toggle source
# File lib/stackify/utils/backtrace.rb, line 34
def self.backtrace_in_line backtrace
  backtrace.join("\n")
end
file_name(backtrace_str) click to toggle source
# File lib/stackify/utils/backtrace.rb, line 17
def self.file_name backtrace_str
  backtrace_str[ALL_TEXT_FROM_START_TO_FIRST_COLON_REGEXP, 1]
end
line_number(backtrace_str) click to toggle source
# File lib/stackify/utils/backtrace.rb, line 8
def self.line_number backtrace_str
  backtrace_str[NUMBER_BETWEEN_TWO_COLONS_REGEXP, 1]
end
method_name(backtrace_str) click to toggle source
# File lib/stackify/utils/backtrace.rb, line 12
def self.method_name backtrace_str
  return nil unless backtrace_str
  backtrace_str[TEXT_AFTER_IN_BEFORE_END_REGEXP, 1] || backtrace_str[TEXT_AFTER_IN_BEFORE_END_REGEXP_, 1]
end
stacktrace(depth=5, backtrace) click to toggle source
# File lib/stackify/utils/backtrace.rb, line 21
def self.stacktrace depth=5, backtrace
  return nil unless backtrace
  new_backtrace = []
  backtrace.take(depth).each do |line|
    new_backtrace << {
      'LineNum' => line_number(line),
      'Method' => method_name(line),
      'CodeFileName' => file_name(line)
    }
  end
  new_backtrace
end