Parent

Class/Module Index [+]

Quicksearch

RSpec::Core::BacktraceFormatter

@private

Attributes

exclusion_patterns[RW]

@private

inclusion_patterns[RW]

@private

Public Class Methods

new() click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 8
def initialize
  @full_backtrace = false

  patterns = [
    "/lib\d*/ruby/",
    "org/jruby/",
    "bin/",
    "/gems/",
  ].map { |s| Regexp.new(s.gsub("/", File::SEPARATOR)) }

  @system_exclusion_patterns = [Regexp.union(RSpec::CallerFilter::IGNORE_REGEX, *patterns)]
  @exclusion_patterns = [] + @system_exclusion_patterns
  @inclusion_patterns = [Regexp.new(Dir.getwd)]
end

Public Instance Methods

backtrace_line(line) click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 46
def backtrace_line(line)
  Metadata.relative_path(line) unless exclude?(line)
rescue SecurityError
  nil
end
exclude?(line) click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 52
def exclude?(line)
  return false if @full_backtrace
  relative_line = Metadata.relative_path(line)
  return false unless matches?(@exclusion_patterns, relative_line)
  matches?(@system_exclusion_patterns, relative_line) || !matches?(@inclusion_patterns, line)
end
format_backtrace(backtrace, options = {}) click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 31
def format_backtrace(backtrace, options = {})
  return backtrace if options[:full_backtrace]

  backtrace.map { |l| backtrace_line(l) }.compact.
    tap do |filtered|
      if filtered.empty?
        filtered.concat backtrace
        filtered << ""
        filtered << "  Showing full backtrace because every line was filtered out."
        filtered << "  See docs for RSpec::Configuration#backtrace_exclusion_patterns and"
        filtered << "  RSpec::Configuration#backtrace_inclusion_patterns for more information."
      end
    end
end
full_backtrace=(full_backtrace) click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 23
def full_backtrace=(full_backtrace)
  @full_backtrace = full_backtrace
end
full_backtrace?() click to toggle source
# File lib/rspec/core/backtrace_formatter.rb, line 27
def full_backtrace?
  @full_backtrace || @exclusion_patterns.empty?
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.