Class: Fontisan::Validation::TableValidator

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

Overview

TableValidator validates the presence and correctness of font tables

This validator checks that all required tables are present in the font based on the font type (TrueType, OpenType/CFF, Variable) and validates table-specific properties like versioning.

Single Responsibility: Table presence and table-level validation

Examples:

Validating tables

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

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ TableValidator

Initialize table validator

Parameters:

  • rules (Hash)

    Validation rules configuration



22
23
24
25
# File 'lib/fontisan/validation/table_validator.rb', line 22

def initialize(rules)
  @rules = rules
  @required_tables = rules["required_tables"]
end

Instance Method Details

#validate(font) ⇒ Array<Hash>

Validate font tables

Parameters:

Returns:

  • (Array<Hash>)

    Array of validation issues



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

def validate(font)
  issues = []

  # Determine font type
  font_type = determine_font_type(font)

  # Check required tables based on font type
  issues.concat(check_required_tables(font, font_type))

  # Check table-specific validations if tables exist
  issues.concat(check_table_versions(font)) if @rules["check_table_versions"]

  issues
end