Class: SimpleCov::Formatter::AIFormatter::MarkdownBuilder
- Inherits:
-
Object
- Object
- SimpleCov::Formatter::AIFormatter::MarkdownBuilder
- Extended by:
- T::Sig
- Includes:
- SnippetFormatter
- Defined in:
- lib/simplecov-ai/markdown_builder.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/snippet_formatter.rb
Overview
Responsible for compiling static text representations from evaluated coverage metrics, optimizing layout size, orchestrating string IO buffers, and halting upon token exhaustion. Serves as the primary mutation boundary to format AI consumption targets.
Defined Under Namespace
Modules: SnippetFormatter Classes: BypassCompiler, DeficitCompiler, DeficitGroup, DeficitGrouper
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(result, config) ⇒ MarkdownBuilder
constructor
A new instance of MarkdownBuilder.
- #truncate_if_needed? ⇒ Boolean
- #try_resolve_ast(filename) ⇒ Object
Methods included from SnippetFormatter
#calculate_occurrence, #count_snippet_occurrences, #fetch_snippet_text, #truncate_snippet
Constructor Details
#initialize(result, config) ⇒ MarkdownBuilder
Returns a new instance of MarkdownBuilder.
36 37 38 39 40 41 42 43 |
# File 'lib/simplecov-ai/markdown_builder.rb', line 36 def initialize(result, config) @result = T.let(result, SimpleCov::Result) @config = T.let(config, Configuration) @buffer = T.let(StringIO.new, StringIO) @file_count = T.let(0, Integer) @truncated = T.let(false, T::Boolean) @ast_cache = T.let({}, T::Hash[String, T::Array[ASTResolver::SemanticNode]]) end |
Instance Method Details
#build ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/simplecov-ai/markdown_builder.rb', line 50 def build write_header DeficitCompiler.new(@result, @config, self).write_deficits(@buffer) BypassCompiler.new(@result, self).write_bypasses(@buffer) if @config.include_bypasses write_truncation_warning if @truncated @buffer.string end |
#truncate_if_needed? ⇒ Boolean
66 67 68 69 70 71 |
# File 'lib/simplecov-ai/markdown_builder.rb', line 66 def truncate_if_needed? return false unless @buffer.size / 1024.0 > @config.max_file_size_kb @truncated = true true end |
#try_resolve_ast(filename) ⇒ Object
59 60 61 62 63 |
# File 'lib/simplecov-ai/markdown_builder.rb', line 59 def try_resolve_ast(filename) @ast_cache[filename] ||= ASTResolver.resolve(filename) rescue StandardError nil end |