class RspecOverview::Formatter
Attributes
output[R]
Public Class Methods
new(output)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 9 def initialize(output) @output = output end
Public Instance Methods
dump_summary(summary)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 13 def dump_summary(summary) summarize_by_type(summary.examples) summarize_by_file(summary.examples) end
Private Instance Methods
extract_subfolder(file_path)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 54 def extract_subfolder(file_path) file_path.slice(/.\/[^\/]+\/[^\/]+/) end
output_format()
click to toggle source
# File lib/rspec_overview/formatter.rb, line 65 def output_format RspecOverview::Output::MarkdownTable end
results_as_rows(results)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 58 def results_as_rows(results) results.values .sort_by(&:duration_raw) .reverse_each .map(&:to_a) end
summarize_by(column_name, examples) { |example| ... }
click to toggle source
# File lib/rspec_overview/formatter.rb, line 32 def summarize_by(column_name, examples) results = {} examples.each do |example| identifier = yield(example) || "none" results[identifier] ||= Result.new(identifier) results[identifier].example_count += 1 results[identifier].duration_raw += example.execution_result.run_time end headings = [ column_name, "Example count", "Duration (s)", "Average per example (s)" ] output.puts "\n# Summary by #{column_name}\n\n" output.puts output_format.new( headings: headings, rows: results_as_rows(results), ) output.puts "\n" end
summarize_by_file(examples)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 28 def summarize_by_file(examples) summarize_by("File", examples) { |example| example.file_path } end
summarize_by_type(examples)
click to toggle source
# File lib/rspec_overview/formatter.rb, line 22 def summarize_by_type(examples) summarize_by("Type or Subfolder", examples) do |example| example.metadata[:type] || extract_subfolder(example.file_path) end end