Class: SimpleCov::Formatter::AIFormatter

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

Overview

Transforms raw simplecov coverage results into an AI-optimized markdown digest. It addresses the context window limitations of LLMs by emitting token-efficient reports and relying on AST-based semantic mapping to pinpoint exact methods or classes with deficient coverage.

Defined Under Namespace

Classes: ASTResolver, Configuration, MarkdownBuilder

Constant Summary collapse

VERSION =

The semantic version identifier for the gem, used for dependency resolution and enforcing compatibility across upgrades.

T.let('0.10.0', String)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configurationObject



30
31
32
# File 'lib/simplecov-ai.rb', line 30

def self.configuration
  @configuration ||= T.let(Configuration.new, T.nilable(Configuration))
end

.configure(&blk) ⇒ Object



40
41
42
# File 'lib/simplecov-ai.rb', line 40

def self.configure(&blk)
  blk&.call(configuration)
end

Instance Method Details

#format(result) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/simplecov-ai.rb', line 52

def format(result)
  config = self.class.configuration
  builder = MarkdownBuilder.new(result, config)
  digest = builder.build

  FileUtils.mkdir_p(File.dirname(config.report_path))
  File.write(config.report_path, digest)

  puts "\n[SimpleCov AI Formatter] Digest written to #{config.report_path}" if config.output_to_console
end