Class: SimpleCov::Formatter::AIFormatter::MarkdownBuilder::BypassCompiler

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/simplecov-ai/markdown_builder/bypass_compiler.rb

Overview

Reports, per file, the coverage bypasses SimpleCov honoured in this run, resolved to the semantic nodes they cover.

Constant Summary collapse

HEADING =

Section heading for bypassed coverage

T.let("## Ignored Coverage Bypasses\n\n", String)
NODE_HEADING_TEMPLATE =

Template for a bypassed node heading

T.let('- %s', String)
REASON_TEMPLATE =

Template detailing the specific directive that ignored coverage for a node

T.let('  - **Bypass Present:** Coverage explicitly ignored via %s.', String)

Instance Method Summary collapse

Constructor Details

#initialize(coverage_metrics, builder) ⇒ BypassCompiler



21
22
23
24
# File 'lib/simplecov-ai/markdown_builder/bypass_compiler.rb', line 21

def initialize(coverage_metrics, builder)
  @coverage_metrics = coverage_metrics
  @builder = builder
end

Instance Method Details

#write_bypasses(budget) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/simplecov-ai/markdown_builder/bypass_compiler.rb', line 31

def write_bypasses(budget)
  writer = SectionWriter.new(budget, HEADING)
  bypassed_file_count = 0
  @coverage_metrics.files.each do |file|
    node_fragments = render_file(file)
    next if node_fragments.empty?

    bypassed_file_count += 1
    writer.write_file_block(SectionWriter.file_heading(file), node_fragments)
  end
  bypassed_file_count - writer.written_blocks
end