Class: Fontisan::Variation::Inspector

Inherits:
Object
  • Object
show all
Defined in:
lib/fontisan/variation/inspector.rb

Overview

Inspects and analyzes variable font structure

This class provides comprehensive analysis of variable font structure, including axes, instances, regions, and variation statistics. Results can be exported to JSON or YAML formats.

Examples:

Inspecting a variable font

inspector = Fontisan::Variation::Inspector.new(font)
info = inspector.inspect_variation
# => { axes: [...], instances: [...], regions: {...}, statistics: {...} }

Exporting to JSON

inspector.export_json
# => "{ \"axes\": [...], ... }"

Exporting to YAML

inspector.export_yaml
# => "---\naxes:\n  - ..."

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(font) ⇒ Inspector

Initialize inspector

Parameters:



36
37
38
39
# File 'lib/fontisan/variation/inspector.rb', line 36

def initialize(font)
  @font = font
  @context = VariationContext.new(font)
end

Instance Attribute Details

#contextVariationContext (readonly)

Returns Variation context.

Returns:



31
32
33
# File 'lib/fontisan/variation/inspector.rb', line 31

def context
  @context
end

#fontTrueTypeFont, OpenTypeFont (readonly)

Returns Font to inspect.

Returns:



28
29
30
# File 'lib/fontisan/variation/inspector.rb', line 28

def font
  @font
end

Instance Method Details

#export_jsonString

Export inspection results as JSON

Returns:

  • (String)

    JSON formatted output



58
59
60
# File 'lib/fontisan/variation/inspector.rb', line 58

def export_json
  JSON.pretty_generate(inspect_variation)
end

#export_yamlString

Export inspection results as YAML

Returns:

  • (String)

    YAML formatted output



65
66
67
# File 'lib/fontisan/variation/inspector.rb', line 65

def export_yaml
  YAML.dump(inspect_variation)
end

#inspect_variationHash

Inspect complete variation structure

Returns comprehensive information about font variation capabilities.

Returns:

  • (Hash)

    Complete variation information



46
47
48
49
50
51
52
53
# File 'lib/fontisan/variation/inspector.rb', line 46

def inspect_variation
  {
    axes: inspect_axes,
    instances: inspect_instances,
    regions: inspect_regions,
    statistics: calculate_statistics,
  }
end

#variable_font?Boolean

Check if font is a variable font

Returns:

  • (Boolean)

    True if font has variation tables



72
73
74
# File 'lib/fontisan/variation/inspector.rb', line 72

def variable_font?
  @context.variable_font?
end