Class: Fontisan::Variation::VariableSvgGenerator::InstanceFontWrapper

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

Overview

Wrapper class for instance font tables

Provides minimal interface needed by SvgGenerator while using instance tables instead of original font tables.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_font, instance_tables) ⇒ InstanceFontWrapper

Initialize wrapper

Parameters:

  • original_font (Object)

    Original variable font

  • instance_tables (Hash<String, String>)

    Instance tables



230
231
232
233
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 230

def initialize(original_font, instance_tables)
  @original_font = original_font
  @table_data = instance_tables
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method) ⇒ Object

Forward other methods to original font



255
256
257
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 255

def method_missing(method, ...)
  @original_font.send(method, ...)
end

Instance Attribute Details

#table_dataHash<String, String> (readonly)

Returns Font tables.

Returns:

  • (Hash<String, String>)

    Font tables



224
225
226
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 224

def table_data
  @table_data
end

Instance Method Details

#has_table?(tag) ⇒ Boolean

Check if table exists

Parameters:

  • tag (String)

    Table tag

Returns:

  • (Boolean)

    True if table exists



250
251
252
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 250

def has_table?(tag)
  @table_data.key?(tag) || @original_font.has_table?(tag)
end

#respond_to_missing?(method, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


259
260
261
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 259

def respond_to_missing?(method, include_private = false)
  @original_font.respond_to?(method, include_private) || super
end

#table(tag) ⇒ Object?

Get table by tag

Parameters:

  • tag (String)

    Table tag

Returns:

  • (Object, nil)

    Table or nil



239
240
241
242
243
244
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 239

def table(tag)
  # Use instance table if available, otherwise fall back to original
  if @table_data.key?(tag)
  end
  @original_font.table(tag)
end