Class: Ucode::Glyphs::SourceConfig::GapReport
- Inherits:
-
Lutaml::Model::Serializable
- Object
- Lutaml::Model::Serializable
- Ucode::Glyphs::SourceConfig::GapReport
- Defined in:
- lib/ucode/glyphs/source_config/gap_report.rb
Overview
Typed result of CoverageAssertion#call. Lists every assigned codepoint that no Tier 1 source's cmap covers, grouped by block.
Pure value object — never raises, never mutates. Callers decide what to do with gaps:
- CI: warn, fail the build on regressions vs. baseline.
- Local curator: print, decide what to add.
- Production build: continue — pillar 1-2-3 catch up.
The shape round-trips through lutaml-model so it can be emitted alongside the universal-set build reports (TODO 31).
Instance Method Summary collapse
-
#block_ids_with_gaps ⇒ Array<String>
Block ids that have at least one gap.
-
#codepoints_for(block_id) ⇒ Array<Integer>
Codepoints with no Tier 1 coverage in this block.
-
#empty? ⇒ Boolean
True when every assigned codepoint in the walked range has at least one Tier 1 covering font.
Instance Method Details
#block_ids_with_gaps ⇒ Array<String>
Returns block ids that have at least one gap.
48 49 50 |
# File 'lib/ucode/glyphs/source_config/gap_report.rb', line 48 def block_ids_with_gaps gaps_by_block.keys end |
#codepoints_for(block_id) ⇒ Array<Integer>
Returns codepoints with no Tier 1 coverage in this block. Empty for blocks with full coverage or blocks that weren't walked.
43 44 45 |
# File 'lib/ucode/glyphs/source_config/gap_report.rb', line 43 def codepoints_for(block_id) Array(gaps_by_block[block_id]) end |
#empty? ⇒ Boolean
Returns true when every assigned codepoint in the walked range has at least one Tier 1 covering font.
35 36 37 |
# File 'lib/ucode/glyphs/source_config/gap_report.rb', line 35 def empty? total_gaps.zero? end |