Class: Fontisan::Validation::ChecksumValidator

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

Overview

ChecksumValidator validates font file and table checksums

This validator checks that the head table checksum adjustment is correct and validates individual table checksums to ensure file integrity.

Single Responsibility: Checksum validation and file integrity

Examples:

Validating checksums

validator = ChecksumValidator.new(rules)
issues = validator.validate(font, font_path)

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ ChecksumValidator

Initialize checksum validator

Parameters:

  • rules (Hash)

    Validation rules configuration



21
22
23
24
# File 'lib/fontisan/validation/checksum_validator.rb', line 21

def initialize(rules)
  @rules = rules
  @checksum_config = rules["checksum_validation"] || {}
end

Instance Method Details

#validate(font, font_path) ⇒ Array<Hash>

Validate font checksums

Parameters:

Returns:

  • (Array<Hash>)

    Array of validation issues



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

def validate(font, font_path)
  issues = []

  # Check head table checksum adjustment if enabled
  if should_check?("check_head_checksum_adjustment")
    issues.concat(check_head_checksum_adjustment(font, font_path))
  end

  # Check individual table checksums if enabled
  if should_check?("check_table_checksums")
    issues.concat(check_table_checksums(font))
  end

  issues
end