Class: Fontisan::Variation::Validator
- Inherits:
-
Object
- Object
- Fontisan::Variation::Validator
- Defined in:
- lib/fontisan/variation/validator.rb
Overview
Validates variable font structure and consistency
This class performs comprehensive validation of variable font tables to ensure structural integrity and catch common issues before instance generation or subsetting operations.
Validation checks:
-
Table consistency - Verify axis counts match across tables
-
Delta integrity - Check delta sets are complete
-
Region coverage - Ensure regions cover design space
-
Instance definitions - Validate instance coordinates
Instance Attribute Summary collapse
-
#errors ⇒ Array<String>
readonly
Validation errors.
-
#font ⇒ TrueTypeFont, OpenTypeFont
readonly
Font being validated.
-
#warnings ⇒ Array<String>
readonly
Validation warnings.
Instance Method Summary collapse
-
#initialize(font) ⇒ Validator
constructor
Initialize validator.
-
#valid? ⇒ Boolean
Quick validation (essential checks only).
-
#validate ⇒ Hash
Perform full validation.
Constructor Details
#initialize(font) ⇒ Validator
Initialize validator
38 39 40 41 42 |
# File 'lib/fontisan/variation/validator.rb', line 38 def initialize(font) @font = font @errors = [] @warnings = [] end |
Instance Attribute Details
#errors ⇒ Array<String> (readonly)
Returns Validation errors.
30 31 32 |
# File 'lib/fontisan/variation/validator.rb', line 30 def errors @errors end |
#font ⇒ TrueTypeFont, OpenTypeFont (readonly)
Returns Font being validated.
27 28 29 |
# File 'lib/fontisan/variation/validator.rb', line 27 def font @font end |
#warnings ⇒ Array<String> (readonly)
Returns Validation warnings.
33 34 35 |
# File 'lib/fontisan/variation/validator.rb', line 33 def warnings @warnings end |
Instance Method Details
#valid? ⇒ Boolean
Quick validation (essential checks only)
69 70 71 |
# File 'lib/fontisan/variation/validator.rb', line 69 def valid? validate[:valid] end |
#validate ⇒ Hash
Perform full validation
Runs all validation checks and returns a detailed report.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/fontisan/variation/validator.rb', line 49 def validate @errors.clear @warnings.clear check_is_variable_font check_table_consistency if @errors.empty? check_delta_integrity if @errors.empty? check_region_coverage if @errors.empty? check_instance_definitions if @errors.empty? { valid: @errors.empty?, errors: @errors.dup, warnings: @warnings.dup, } end |