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



233
234
235
236
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 233

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



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

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



227
228
229
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 227

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



253
254
255
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 253

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

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

Returns:

  • (Boolean)


262
263
264
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 262

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



242
243
244
245
246
247
# File 'lib/fontisan/variation/variable_svg_generator.rb', line 242

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