class RspecCompactDocFormatter
Public Class Methods
new(output)
click to toggle source
Calls superclass method
# File lib/rspec_compact_doc_formatter.rb, line 4 def initialize(output) super(output) @group_level = 0 end
Public Instance Methods
current_indentation()
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 9 def current_indentation ' ' * @group_level end
dump_commands_to_rerun_failed_examples()
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 13 def dump_commands_to_rerun_failed_examples # Hidden end
dump_pending()
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 17 def dump_pending # Hidden end
example_failed(example)
click to toggle source
Calls superclass method
# File lib/rspec_compact_doc_formatter.rb, line 53 def example_failed(example) super(example) output.puts failure_output(example, example.execution_result[:exception]) end
example_group_finished(example_group)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 39 def example_group_finished(example_group) @group_level -= 1 end
example_group_started(example_group)
click to toggle source
Calls superclass method
# File lib/rspec_compact_doc_formatter.rb, line 21 def example_group_started(example_group) super(example_group) description = example_group.description if @group_level == 0 output_class_name description elsif method_name? description output_prelude_and_method description elsif @method_position and @group_level > @method_position output_fixture description else @prelude += description + ' ' end @group_level += 1 end
example_passed(example)
click to toggle source
Calls superclass method
# File lib/rspec_compact_doc_formatter.rb, line 43 def example_passed(example) super(example) output.puts passed_output(example) end
example_pending(example)
click to toggle source
Calls superclass method
# File lib/rspec_compact_doc_formatter.rb, line 48 def example_pending(example) super(example) output.puts pending_output(example, example.execution_result[:pending_message]) end
failure_output(example, exception)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 58 def failure_output(example, exception) one_liner_description example, 'red' end
method_name?(description)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 62 def method_name?(description) description[0,1] == '#' or description[0,2] == '::' end
next_failure_index()
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 66 def next_failure_index @next_failure_index ||= 0 @next_failure_index += 1 end
one_liner_description(example, color='green')
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 71 def one_liner_description(example, color='green') content = { :assertion => [], :result => '', :subject => 'it' } if example_group example_group.ancestors.reverse.each_with_index do |a, i| if i <= @start_position nil elsif i != @start_position + 1 and a.description[0,4] == 'when' content[:assertion] << ", #{a.description}" elsif not ['and', 'having', 'when', 'with', 'without'].include? a.description.split(' ')[0] and (i+1) == example_group.ancestors.length content[:subject] = a.description else content[:assertion] << " #{a.description}" end end end content[:subject] = "\e[35m#{content[:subject]}\e[0m " content[:subject] = ', ' + content[:subject] if content[:assertion].length > 0 content[:result] = example.description.to_s.empty? ? 'FAILED' : example.description return (@start_position == 1 ? ' ' : ' ') + content[:assertion].join + content[:subject] + self.send(color, content[:result]) end
output_class_name(description)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 96 def output_class_name(description) output.puts "\n" + description @prelude = '' end
output_fixture(description)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 101 def output_fixture(description) if description.include? 'with the fixture' @start_position += 1 output.puts current_indentation + description.split(':')[0] + "\e[1;33m" + description.split(':')[1] + "\e[0m" end end
output_prelude_and_method(description)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 109 def output_prelude_and_method(description) indent_method = @prelude.empty? ? ' ' : ' ' if @method_position and @method_position > 1 if @group_level == 1 output.puts " " else indent_method = ' ' end end if not @prelude.empty? output.puts "\n " + @prelude @prelude = '' end output.puts indent_method + cyan(description) @method_position = @group_level @start_position = @method_position end
passed_output(example)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 131 def passed_output(example) one_liner_description example, 'green' end
pending_output(example, message)
click to toggle source
# File lib/rspec_compact_doc_formatter.rb, line 135 def pending_output(example, message) indent = (@start_position and @start_position > 1) ? ' ' : ' ' yellow("#{indent}#{example.description} (PENDING: #{message})") end