123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Core::Formatters::HtmlFormatter Private

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: RSpec::Core::Formatters::BaseFormatter
Defined in: rspec-core/lib/rspec/core/formatters/html_formatter.rb

Class Method Summary

BaseFormatter - Inherited

Instance Attribute Summary

Instance Method Summary

BaseFormatter - Inherited

Instance Method Details

#dump_summary(summary)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 103

def dump_summary(summary)
  @printer.print_summary(
    summary.duration,
    summary.example_count,
    summary.failure_count,
    summary.pending_count
  )
  @printer.flush
end

#example_failed(failure)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 55

def example_failed(failure)
  @failed_examples << failure.example
  unless @header_red
    @header_red = true
    @printer.make_header_red
  end

  unless @example_group_red
    @example_group_red = true
    @printer.make_example_group_header_red(example_group_number)
  end

  @printer.move_progress(percent_done)

  example = failure.example

  exception = failure.exception
  message_lines = failure.fully_formatted_lines(nil, RSpec::Core::Notifications::NullColorizer)
  exception_details = if exception
                        {
                          # drop 2 removes the description (regardless of newlines) and leading blank line
                          :message => message_lines.drop(2).join("\n"),
                          :backtrace => failure.formatted_backtrace.join("\n"),
                        }
                      end
  extra = extra_failure_content(failure)

  @printer.print_example_failed(
    example.execution_result.pending_fixed,
    example.description,
    example.execution_result.run_time,
    @failed_examples.size,
    exception_details,
    (extra == "") ? false : extra
  )
  @printer.flush
end

#example_group_number (private)

The number of the currently running example_group.

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 120

def example_group_number
  @example_group_number
end

#example_group_started(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 28

def example_group_started(notification)
  super
  @example_group_red = false
  @example_group_number += 1

  @printer.print_example_group_end unless example_group_number == 1
  @printer.print_example_group_start(example_group_number,
                                     notification.group.description,
                                     notification.group.parent_groups.size)
  @printer.flush
end

#example_number (private)

The number of the currently running example (a global counter).

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 125

def example_number
  @example_number
end

#example_passed(passed)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 49

def example_passed(passed)
  @printer.move_progress(percent_done)
  @printer.print_example_passed(passed.example.description, passed.example.execution_result.run_time)
  @printer.flush
end

#example_pending(pending)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 93

def example_pending(pending)
  example = pending.example

  @printer.make_header_yellow unless @header_red
  @printer.make_example_group_header_yellow(example_group_number) unless @example_group_red
  @printer.move_progress(percent_done)
  @printer.print_example_pending(example.description, example.execution_result.pending_message)
  @printer.flush
end

#example_started(_notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 45

def example_started(_notification)
  @example_number += 1
end

#extra_failure_content(failure) (private)

Override this method if you wish to output extra HTML for a failed spec. For example, you could output links to images or other files produced during the specs.

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 141

def extra_failure_content(failure)
  RSpec::Support.require_rspec_core "formatters/html_snippet_extractor"
  backtrace = (failure.exception.backtrace || []).map do |line|
    RSpec.configuration.backtrace_formatter.backtrace_line(line)
  end
  backtrace.compact!
  @snippet_extractor ||= HtmlSnippetExtractor.new
  "    <pre class=\"ruby\"><code>#{@snippet_extractor.snippet(backtrace)}</code></pre>"
end

#percent_done (private)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 130

def percent_done
  result = 100.0
  if @example_count > 0
    result = (((example_number).to_f / @example_count.to_f * 1000).to_i / 10.0).to_f
  end
  result
end

#start(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 22

def start(notification)
  super
  @printer.print_html_start
  @printer.flush
end

#start_dump(_notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/html_formatter.rb', line 40

def start_dump(_notification)
  @printer.print_example_group_end
  @printer.flush
end