Baseclass for text-based formatters. Can in fact be used for non-text based ones too - just ignore the output constructor argument.
Creates a new instance that will write to output. If output is a String, output will be written to the File with that name, otherwise output is exected to be an IO (or an object that responds to # and #).
# File lib/spec/runner/formatter/base_text_formatter.rb, line 16
16: def initialize(options, output)
17: @options = options
18: if String === output
19: FileUtils.mkdir_p(File.dirname(output))
20: @output = File.open(output, 'w')
21: else
22: @output = output
23: end
24: @pending_examples = []
25: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 85
85: def close
86: @output.close if (IO === @output) & (@output != $stdout)
87: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 43
43: def colorize_failure(message, failure)
44: failure.pending_fixed? ? blue(message) : red(message)
45: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 47
47: def colourise(message, failure)
48: Spec::deprecate("BaseTextFormatter#colourise", "colorize_failure")
49: colorize_failure(message, failure)
50: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 35
35: def dump_failure(counter, failure)
36: @output.puts
37: @output.puts "#{counter.to_s})"
38: @output.puts colorize_failure("#{failure.header}\n#{failure.exception.message}", failure)
39: @output.puts format_backtrace(failure.exception.backtrace)
40: @output.flush
41: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 73
73: def dump_pending
74: unless @pending_examples.empty?
75: @output.puts
76: @output.puts "Pending:"
77: @pending_examples.each do |pending_example|
78: @output.puts "\n#{pending_example[0]} (#{pending_example[1]})"
79: @output.puts "#{pending_example[2]}\n"
80: end
81: end
82: @output.flush
83: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 52
52: def dump_summary(duration, example_count, failure_count, pending_count)
53: return if dry_run?
54: @output.puts
55: @output.puts "Finished in #{duration} seconds"
56: @output.puts
57:
58: summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}"
59: summary << ", #{pending_count} pending" if pending_count > 0
60:
61: if failure_count == 0
62: if pending_count > 0
63: @output.puts yellow(summary)
64: else
65: @output.puts green(summary)
66: end
67: else
68: @output.puts red(summary)
69: end
70: @output.flush
71: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 27
27: def example_group_started(example_group_proxy)
28: @example_group = example_group_proxy
29: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 31
31: def example_pending(example, message, deprecated_pending_location=nil)
32: @pending_examples << ["#{@example_group.description} #{example.description}", message, example.location]
33: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 104
104: def autospec?
105: !!@options.autospec || ENV.has_key?("AUTOTEST")
106: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 108
108: def backtrace_line(line)
109: line.sub(/\A([^:]+:\d+)$/, '\1:')
110: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 133
133: def blue(text); colour(text, "\e[34m"); end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 112
112: def colour(text, colour_code)
113: return text if output_to_file?
114: return text unless ENV['RSPEC_COLOR'] || (colour? & (autospec? || output_to_tty?))
115: "#{colour_code}#{text}\e[0m"
116: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 96
96: def colour?
97: !!@options.colour
98: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 100
100: def dry_run?
101: !!@options.dry_run
102: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 130
130: def green(text); colour(text, "\e[32m"); end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 135
135: def magenta(text)
136: Spec::deprecate("BaseTextFormatter#magenta")
137: red(text)
138: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 118
118: def output_to_file?
119: File === @output
120: end
# File lib/spec/runner/formatter/base_text_formatter.rb, line 122
122: def output_to_tty?
123: begin
124: @output.tty?
125: rescue NoMethodError
126: false
127: end
128: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.