class RainbowFormatter

Constants

BUNDLED_MODES

Attributes

ascii_array[R]
example_name[R]
output[R]

Public Class Methods

configuration() click to toggle source
# File lib/rainbow_formatter.rb, line 40
def self.configuration
  @configuration ||= Formatter::Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/rainbow_formatter.rb, line 44
def self.configure
  yield configuration if block_given?
end
new(output) click to toggle source
# File lib/rainbow_formatter.rb, line 25
def initialize(output)
  @output = output
  @current = @color_index = @passing_count = @failure_count = @pending_count = @animation_index = 0
  @example_results = []
  @failed_examples = []
  @pending_examples = []
  setup_formatter
end

Public Instance Methods

dump_failed_summary() click to toggle source
# File lib/rainbow_formatter.rb, line 82
def dump_failed_summary
  @failed_examples.each do |n|
    output.puts "\n-> #{n.description}\n\n"
    output.puts n.colorized_message_lines
    output.puts "\n --> Exception backtrace: \n\n"
    output.puts n.exception.backtrace.join("\n")
  end
end
dump_summary(notification) click to toggle source
# File lib/rainbow_formatter.rb, line 91
def dump_summary(notification)
  duration = notification.duration
  summary = "\nYou've rainbowified for #{format_duration(duration)}\n".split(//).map { |c| rainbowify(c) }
  dump_failed_summary
  output.puts notification.colorized_message_lines if notification.respond_to?(:colorized_message_lines)
  output.puts summary.join
  output.puts notification.fully_formatted
  dump_commands_to_rerun_failed_examples if respond_to?(:dump_commands_to_rerun_failed_examples)
end
example_failed(notification) click to toggle source
# File lib/rainbow_formatter.rb, line 76
def example_failed(notification)
  @failed_examples << notification
  @failure_count += 1
  tick(mark: FAIL)
end
example_passed(_notification) click to toggle source
# File lib/rainbow_formatter.rb, line 66
def example_passed(_notification)
  tick
end
example_pending(notification) click to toggle source
# File lib/rainbow_formatter.rb, line 70
def example_pending(notification)
  @pending_examples << notification
  @pending_count += 1
  tick(mark: PENDING)
end
example_started(notification) click to toggle source
# File lib/rainbow_formatter.rb, line 61
def example_started(notification)
  notification = notification.example if notification.respond_to?(:example)
  @example_name = notification.full_description
end
setup_formatter() click to toggle source
# File lib/rainbow_formatter.rb, line 34
def setup_formatter
  formatter = RainbowFormatter.configuration.formatter
  formatter = BUNDLED_MODES.dig(formatter) unless formatter.is_a?(Module)
  singleton_class.send(:include, formatter)
end
start(start_notification) click to toggle source
# File lib/rainbow_formatter.rb, line 48
def start(start_notification)
  # TODO: Lazy fix for specs.
  @example_count = if start_notification.is_a?(Integer)
                     start_notification
                   else
                     start_notification.count
                   end
end
start_dump(_notification) click to toggle source
# File lib/rainbow_formatter.rb, line 57
def start_dump(_notification)
  @current = @example_count
end