Class: SimpleCov::Formatter::AIFormatter
- Inherits:
-
Object
- Object
- SimpleCov::Formatter::AIFormatter
- Extended by:
- T::Sig
- Defined in:
- lib/simplecov-ai.rb,
lib/simplecov-ai/version.rb,
lib/simplecov-ai/constants.rb,
lib/simplecov-ai/ast_resolver.rb,
lib/simplecov-ai/configuration.rb,
lib/simplecov-ai/markdown_builder.rb,
lib/simplecov-ai/ast_resolver/semantic_node.rb,
lib/simplecov-ai/markdown_builder/branch_enricher.rb,
lib/simplecov-ai/markdown_builder/bypass_compiler.rb,
lib/simplecov-ai/markdown_builder/deficit_grouper.rb,
lib/simplecov-ai/markdown_builder/deficit_compiler.rb,
lib/simplecov-ai/markdown_builder/deficit_formatter.rb,
lib/simplecov-ai/markdown_builder/snippet_formatter.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
Modules: Constants Classes: ASTResolver, Configuration, MarkdownBuilder
Constant Summary collapse
- SUCCESS_LOG_PREFIX =
The standard output prefix used when reporting generation success.
T.let("\n[SimpleCov AI Formatter] Digest written to ", String)
- VERSION =
The semantic version identifier for the gem, used for dependency resolution and enforcing compatibility across upgrades.
T.let('0.10.5', String)
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.configuration ⇒ Object
34 35 36 |
# File 'lib/simplecov-ai.rb', line 34 def self.configuration @configuration ||= T.let(Configuration.new, T.nilable(Configuration)) end |
.configure(&blk) ⇒ Object
44 45 46 |
# File 'lib/simplecov-ai.rb', line 44 def self.configure(&blk) blk&.call(configuration) end |
Instance Method Details
#format(coverage_metrics) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/simplecov-ai.rb', line 56 def format(coverage_metrics) config = self.class.configuration builder = MarkdownBuilder.new(coverage_metrics, config) digest = builder.build FileUtils.mkdir_p(File.dirname(config.report_path)) File.write(config.report_path, digest) puts "#{SUCCESS_LOG_PREFIX}#{config.report_path}" if config.output_to_console end |