Class: Fontisan::Validation::ConsistencyValidator

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

Overview

ConsistencyValidator validates cross-table consistency

This validator ensures that references between tables are valid, such as cmap glyph references, hmtx entry counts, and variable font table consistency.

Single Responsibility: Cross-table data consistency validation

Examples:

Validating consistency

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

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ ConsistencyValidator

Initialize consistency validator

Parameters:

  • rules (Hash)

    Validation rules configuration



20
21
22
23
# File 'lib/fontisan/validation/consistency_validator.rb', line 20

def initialize(rules)
  @rules = rules
  @consistency_config = rules["consistency_checks"] || {}
end

Instance Method Details

#validate(font) ⇒ Array<Hash>

Validate font consistency

Parameters:

Returns:

  • (Array<Hash>)

    Array of validation issues



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

def validate(font)
  issues = []

  # Check hmtx consistency if enabled
  issues.concat(check_hmtx_consistency(font)) if should_check?("check_hmtx_consistency")

  # Check name table consistency if enabled
  issues.concat(check_name_consistency(font)) if should_check?("check_name_consistency")

  # Check variable font consistency if enabled
  issues.concat(check_variable_consistency(font)) if should_check?("check_variable_consistency")

  issues
end