Class: Yard::Lint::StatsCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/yard/lint/stats_calculator.rb

Overview

Calculates documentation coverage statistics Runs YARD queries to count documented vs undocumented objects

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, files) ⇒ StatsCalculator

Returns a new instance of StatsCalculator.

Parameters:

  • config (Yard::Lint::Config)

    configuration object

  • files (Array<String>)

    Ruby source files whose YARD documentation will be checked for coverage statistics



12
13
14
15
# File 'lib/yard/lint/stats_calculator.rb', line 12

def initialize(config, files)
  @config = config
  @files = Array(files).compact
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/yard/lint/stats_calculator.rb', line 8

def config
  @config
end

#filesObject (readonly)

Returns the value of attribute files.



8
9
10
# File 'lib/yard/lint/stats_calculator.rb', line 8

def files
  @files
end

Instance Method Details

#calculateHash

Calculate documentation coverage statistics

Returns:

  • (Hash)

    statistics with :total, :documented, :coverage keys



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/yard/lint/stats_calculator.rb', line 19

def calculate
  return default_stats if files.empty?

  raw_stats = run_yard_stats_query
  return default_stats if raw_stats.empty?

  parsed_stats = parse_stats_output(raw_stats)
  filtered_stats = apply_exclusions(parsed_stats)

  calculate_coverage_percentage(filtered_stats)
end