Class: SimpleCov::Formatter::AIFormatter::MarkdownBuilder::DeficitFormatter
- Inherits:
-
Object
- Object
- SimpleCov::Formatter::AIFormatter::MarkdownBuilder::DeficitFormatter
- Extended by:
- T::Sig
- Includes:
- SnippetFormatter
- Defined in:
- lib/simplecov-ai/markdown_builder/deficit_formatter.rb
Overview
Handles the formatting of line and branch deficits into markdown.
Constant Summary collapse
- ERROR_AST_FAILED =
Error message for AST parsing failures
T.let(" - **ERROR:** AST Parsing Failed. Showing raw line numbers instead.\n", String)
- NODE_HEADING_TEMPLATE =
Template for node-level deficit headings
T.let('- `%s`', String)
- DEFICIT_COARSE =
Coarse-grained deficit summary message
T.let(' - **Deficit:** Contains unexecuted lines or branches.', String)
- LINE_DEFICIT_TMPL =
Template for a specific line deficit
T.let(' - **Line Deficit:** [L%d] `%s` %s', String)
- BRANCH_DEFICIT_TMPL =
Template for a specific branch deficit
T.let(' - **Branch Deficit:** [L%s] Missing coverage for `%s` branch: `%s` %s', String)
Constants included from SnippetFormatter
SnippetFormatter::ESTIMATED_CHARS_PER_LINE, SnippetFormatter::OCCURRENCE_TEMPLATE, SnippetFormatter::TRUNCATION_ELLIPSIS
Instance Method Summary collapse
- #format_raw_deficits(file, source_lines) ⇒ Object
-
#initialize(buffer, config) ⇒ DeficitFormatter
constructor
A new instance of DeficitFormatter.
- #process_deficits(file, nodes, safe_readlines_proc) ⇒ Object
Methods included from SnippetFormatter
#calculate_occurrence, #count_snippet_occurrences, #fetch_snippet_text, #truncate_snippet
Constructor Details
#initialize(buffer, config) ⇒ DeficitFormatter
Returns a new instance of DeficitFormatter.
25 26 27 28 |
# File 'lib/simplecov-ai/markdown_builder/deficit_formatter.rb', line 25 def initialize(buffer, config) @buffer = buffer @config = config end |
Instance Method Details
#format_raw_deficits(file, source_lines) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/simplecov-ai/markdown_builder/deficit_formatter.rb', line 31 def format_raw_deficits(file, source_lines) @buffer.puts ERROR_AST_FAILED deficit_group = MarkdownBuilder::DeficitGroup.new(lines: file.missed_lines, branches: file.missed_branches) format_deficit_group(deficit_group, source_lines) @buffer.puts '' end |
#process_deficits(file, nodes, safe_readlines_proc) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/simplecov-ai/markdown_builder/deficit_formatter.rb', line 42 def process_deficits(file, nodes, safe_readlines_proc) node_deficits = DeficitGrouper.build(file, nodes) source_lines = T.let(nil, T.nilable(T::Array[String])) node_deficits.each do |node_name, deficit_group| source_lines ||= safe_readlines_proc.call format_node_deficit(node_name, deficit_group, source_lines) end @buffer.puts '' end |