Module: CovLoupe::StaleStatus
- Defined in:
- lib/cov_loupe/staleness/stale_status.rb
Overview
Helpers for working with staleness status values.
Status values used across the codebase:
- 'ok' → file is fresh, coverage matches source
- 'missing' → source file has been deleted
- 'newer' → source file mtime exceeds coverage timestamp
- 'length_mismatch'→ source line count differs from coverage array length
- 'error' → source file could not be read
Additional status values used in project totals (not per-file):
- MISSING_FROM_DISK, NEWER, LENGTH_MISMATCH, UNREADABLE → labels for stale breakdown
- MISSING_FROM_COVERAGE → tracked file not found in coverage data
- SKIPPED → file skipped due to processing error
Constant Summary collapse
- VALID_STATUSES =
%w[ok missing newer length_mismatch error].freeze
- MISSING_FROM_DISK =
'missing_from_disk'- NEWER =
'newer'- LENGTH_MISMATCH =
'length_mismatch'- UNREADABLE =
'unreadable'- MISSING_FROM_COVERAGE =
'missing_from_coverage'- SKIPPED =
'skipped'
Class Method Summary collapse
Class Method Details
.normalize(value) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cov_loupe/staleness/stale_status.rb', line 30 module_function def normalize(value) raise ArgumentError, 'Stale status is missing' if value.nil? unless value.is_a?(String) raise ArgumentError, "Stale status must be a String, got #{value.class} (value: #{value.inspect})" end return value if VALID_STATUSES.include?(value) raise ArgumentError, "Unknown stale status: #{value.inspect}. " \ "Permitted values: #{VALID_STATUSES.join(', ')}" end |
.stale?(value) ⇒ Boolean
26 27 28 |
# File 'lib/cov_loupe/staleness/stale_status.rb', line 26 module_function def stale?(value) normalize(value) != 'ok' end |