Class: Fontisan::Audit::Extractors::VariationDetail
- Defined in:
- lib/fontisan/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) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/fontisan/audit/extractors/variation_detail.rb', line 17 def extract(context) font = context.font return { variation: nil } unless variable?(font) fvar = font.table(Constants::FVAR_TAG) return { variation: nil } unless fvar name_table = font.has_table?(Constants::NAME_TAG) ? font.table(Constants::NAME_TAG) : 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?(Constants::AVAR_TAG), has_cvar: font.has_table?(Constants::CVAR_TAG), has_hvar: font.has_table?(Constants::HVAR_TAG), has_vvar: font.has_table?(Constants::VVAR_TAG), has_mvar: font.has_table?(Constants::MVAR_TAG), has_gvar: font.has_table?(Constants::GVAR_TAG), ) } end |