Class: Ucode::Audit::Extractors::VariationDetail
- Defined in:
- lib/ucode/audit/extractors/variation_detail.rb
Overview
Variable-font detail: fvar axes + named instances + presence flags for every variation side-table (avar, cvar, HVAR, VVAR, MVAR, gvar).
Returned fields:
variation: Models::Audit::VariationDetail, or nil for non-variable
faces and Type 1 fonts
A face is considered variable iff the fvar table is present. CFF2 outlines without fvar are not “variable” by this definition (they may carry variation data but no user-facing axes).
Instance Method Summary collapse
Instance Method Details
#extract(context) ⇒ Hash{Symbol=>Object}
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ucode/audit/extractors/variation_detail.rb', line 21 def extract(context) font = context.font return { variation: nil } unless variable?(font) fvar = font.table("fvar") return { variation: nil } unless fvar name_table = font.has_table?("name") ? font.table("name") : nil = (fvar) { variation: Models::Audit::VariationDetail.new( axes: build_axes(name_table, fvar), named_instances: build_instances(name_table, fvar, ), has_avar: font.has_table?("avar"), has_cvar: font.has_table?("cvar"), has_hvar: font.has_table?("HVAR"), has_vvar: font.has_table?("VVAR"), has_mvar: font.has_table?("MVAR"), has_gvar: font.has_table?("gvar"), ) } end |