Class: SimpleCovMcp::Presenters::ProjectCoveragePresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/simplecov_mcp/presenters/project_coverage_presenter.rb

Overview

Provides repository-wide coverage summaries shared by CLI and MCP surfaces.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model:, sort_order:, check_stale:, tracked_globs:) ⇒ ProjectCoveragePresenter

Returns a new instance of ProjectCoveragePresenter.



9
10
11
12
13
14
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 9

def initialize(model:, sort_order:, check_stale:, tracked_globs:)
  @model = model
  @sort_order = sort_order
  @check_stale = check_stale
  @tracked_globs = tracked_globs
end

Instance Attribute Details

#check_staleObject (readonly)

Returns the value of attribute check_stale.



7
8
9
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 7

def check_stale
  @check_stale
end

#modelObject (readonly)

Returns the value of attribute model.



7
8
9
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 7

def model
  @model
end

#sort_orderObject (readonly)

Returns the value of attribute sort_order.



7
8
9
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 7

def sort_order
  @sort_order
end

#tracked_globsObject (readonly)

Returns the value of attribute tracked_globs.



7
8
9
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 7

def tracked_globs
  @tracked_globs
end

Instance Method Details

#absolute_payloadObject

Returns the absolute-path payload including counts.



17
18
19
20
21
22
23
24
25
26
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 17

def absolute_payload
  @absolute_payload ||= begin
    files = model.all_files(
      sort_order: sort_order,
      check_stale: check_stale,
      tracked_globs: tracked_globs
    )
    { 'files' => files, 'counts' => build_counts(files) }
  end
end

#relative_countsObject

Returns the coverage counts with relative file paths.



39
40
41
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 39

def relative_counts
  relativized_payload['counts']
end

#relative_filesObject

Returns the relativized file rows.



34
35
36
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 34

def relative_files
  relativized_payload['files']
end

#relativized_payloadObject

Returns the payload with file paths relativized for presentation.



29
30
31
# File 'lib/simplecov_mcp/presenters/project_coverage_presenter.rb', line 29

def relativized_payload
  @relativized_payload ||= model.relativize(absolute_payload)
end