class RSpec::HalfFull

Public Class Methods

new(io) click to toggle source
Calls superclass method
# File lib/rspec/half_full.rb, line 6
def initialize(io)
  super(io)
  RSpec.configuration.failure_color = :green
end

Public Instance Methods

dump_commands_to_rerun_failed_examples() click to toggle source
# File lib/rspec/half_full.rb, line 43
def dump_commands_to_rerun_failed_examples
  return if failed_examples.empty?
  output.puts
  output.puts("Rerun on next step to success:")
  output.puts

  failed_examples.each do |example|
    output.puts(failure_color("rspec #{RSpec::Core::Metadata::relative_path(example.location)}") + " " + detail_color("# #{example.full_description}"))
  end
end
dump_failure_info(example) click to toggle source
# File lib/rspec/half_full.rb, line 31
def dump_failure_info(example)
  exception = example.execution_result.exception
  exception_class_name = exception_class_name_for(exception)
  output.puts "#{long_padding}#{failure_color("Future Success:")} #{failure_color(read_failed_line(exception, example).strip)}"
  output.puts "#{long_padding}#{failure_color(exception_class_name)}:" unless exception_class_name =~ /RSpec/
  exception.message.to_s.split("\n").each { |line| output.puts "#{long_padding}  #{failure_color(line)}" } if exception.message

  if shared_group = find_shared_group(example)
    dump_shared_failure_info(shared_group)
  end
end
dump_failures() click to toggle source
# File lib/rspec/half_full.rb, line 20
def dump_failures
  return if failed_examples.empty?
  output.puts
  output.puts "Future successes:"
  failed_examples.each_with_index do |example, index|
    output.puts
    pending_fixed?(example) ? dump_pending_fixed(example, index) : dump_failure(example, index)
    dump_backtrace(example)
  end
end
pluralize(count, string) click to toggle source
Calls superclass method
# File lib/rspec/half_full.rb, line 54
def pluralize(count, string)
  if string.end_with?("success")
    "#{count} #{string}#{'es' unless count.to_f == 1}"
  else
    super(count, string)
  end
end
summary_line(example_count, failure_count, pending_count) click to toggle source
# File lib/rspec/half_full.rb, line 11
def summary_line(example_count, failure_count, pending_count)
  success_count = example_count - failure_count - pending_count
  summary = pluralize(example_count, "example")
  summary << ", " << "#{success_count} already successful" if success_count > 0
  summary << ", " << pluralize(failure_count, "future success")
  summary << ", #{pending_count} pending" if pending_count > 0
  summary
end