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:



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

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

Instance Attribute Details

#contextVariationContext (readonly)

Returns Variation context.

Returns:



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

def context
  @context
end

#fontTrueTypeFont, OpenTypeFont (readonly)

Returns Font to inspect.

Returns:



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

def font
  @font
end

Instance Method Details

#export_jsonString

Export inspection results as JSON

Returns:

  • (String)

    JSON formatted output



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

def export_json
  JSON.pretty_generate(inspect_variation)
end

#export_yamlString

Export inspection results as YAML

Returns:

  • (String)

    YAML formatted output



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

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



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

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



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

def variable_font?
  @context.variable_font?
end