class Sentry::Backtrace

@api private

def self.parse(backtrace, project_root, app_dirs_pattern, &backtrace_cleanup_callback)

def self.parse(backtrace, project_root, app_dirs_pattern, &backtrace_cleanup_callback)
  ruby_lines = backtrace.is_a?(Array) ? backtrace : backtrace.split(/\n\s*/)
  ruby_lines = backtrace_cleanup_callback.call(ruby_lines) if backtrace_cleanup_callback
  in_app_pattern ||= begin
    Regexp.new("^(#{project_root}/)?#{app_dirs_pattern || APP_DIRS_PATTERN}")
  end
  lines = ruby_lines.to_a.map do |unparsed_line|
    Line.parse(unparsed_line, in_app_pattern)
  end
  new(lines)
end

def ==(other)

def ==(other)
  if other.respond_to?(:lines)
    lines == other.lines
  else
    false
  end
end

def initialize(lines)

def initialize(lines)
  @lines = lines
end

def inspect

def inspect
  "<Backtrace: " + lines.map(&:inspect).join(", ") + ">"
end

def to_s

def to_s
  content = []
  lines.each do |line|
    content << line
  end
  content.join("\n")
end