Class: Fontisan::Validation::StructureValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/fontisan/validation/structure_validator.rb

Overview

StructureValidator validates the structural integrity of fonts

This validator checks the SFNT structure, table offsets, table ordering, and other structural properties that ensure the font file is well-formed.

Single Responsibility: Font structure and SFNT format validation

Examples:

Validating structure

validator = StructureValidator.new(rules)
issues = validator.validate(font)

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ StructureValidator

Initialize structure validator

Parameters:

  • rules (Hash)

    Validation rules configuration



19
20
21
22
# File 'lib/fontisan/validation/structure_validator.rb', line 19

def initialize(rules)
  @rules = rules
  @structure_config = rules["structure_validation"] || {}
end

Instance Method Details

#validate(font) ⇒ Array<Hash>

Validate font structure

Parameters:

Returns:

  • (Array<Hash>)

    Array of validation issues



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/fontisan/validation/structure_validator.rb', line 28

def validate(font)
  issues = []

  # Check glyph count consistency
  issues.concat(check_glyph_consistency(font))

  # Check table offsets
  issues.concat(check_table_offsets(font)) if @rules.dig(
    "validation_levels", "standard", "check_table_offsets"
  )

  # Check table ordering (optional optimization check)
  issues.concat(check_table_ordering(font)) if @rules.dig(
    "validation_levels", "standard", "check_table_ordering"
  )

  issues
end