Module: Fontisan::Subset::TableStrategy

Defined in:
lib/fontisan/subset/table_strategy.rb,
lib/fontisan/subset/table_strategy/cff.rb,
lib/fontisan/subset/table_strategy/os2.rb,
lib/fontisan/subset/table_strategy/cbdt.rb,
lib/fontisan/subset/table_strategy/cblc.rb,
lib/fontisan/subset/table_strategy/cff2.rb,
lib/fontisan/subset/table_strategy/cmap.rb,
lib/fontisan/subset/table_strategy/glyf.rb,
lib/fontisan/subset/table_strategy/head.rb,
lib/fontisan/subset/table_strategy/hhea.rb,
lib/fontisan/subset/table_strategy/hmtx.rb,
lib/fontisan/subset/table_strategy/loca.rb,
lib/fontisan/subset/table_strategy/maxp.rb,
lib/fontisan/subset/table_strategy/name.rb,
lib/fontisan/subset/table_strategy/post.rb,
lib/fontisan/subset/table_strategy/pass_through.rb,
lib/fontisan/subset/table_strategy/glyf_loca_builder.rb,
lib/fontisan/subset/table_strategy/color_bitmap_placement.rb,
lib/fontisan/subset/table_strategy/color_bitmap_subsetter.rb,
lib/fontisan/subset/table_strategy/color_bitmap_strike_plan.rb,
lib/fontisan/subset/table_strategy/color_bitmap_subset_plan.rb,
lib/fontisan/subset/table_strategy/color_bitmap_subtable_plan.rb

Defined Under Namespace

Classes: Cbdt, Cblc, Cff, Cff2, Cmap, ColorBitmapPlacement, ColorBitmapStrikePlan, ColorBitmapSubsetPlan, ColorBitmapSubsetter, ColorBitmapSubtablePlan, Glyf, GlyfLocaBuilder, Head, Hhea, Hmtx, Loca, Maxp, Name, Os2, PassThrough, Post

Constant Summary collapse

REGISTRY =

Tag → strategy class name (resolved lazily via const_get to keep this file loadable in any order). Add new subsetting logic by adding one autoload + one entry here, plus a strategy file under lib/fontisan/subset/table_strategy/.

{
  "maxp" => :Maxp,
  "hhea" => :Hhea,
  "hmtx" => :Hmtx,
  "loca" => :Loca,
  "glyf" => :Glyf,
  "cmap" => :Cmap,
  "post" => :Post,
  "name" => :Name,
  "head" => :Head,
  "OS/2" => :Os2,
  "CFF " => :Cff,
  "CFF2" => :Cff2,
  "CBDT" => :Cbdt,
  "CBLC" => :Cblc,
}.freeze

Class Method Summary collapse

Class Method Details

.for(tag) ⇒ Class

Resolve a table tag to its strategy class. Returns PassThrough for any tag without an explicit registration.

Parameters:

  • tag (String)

    OpenType table tag (e.g. "maxp", "CBDT")

Returns:

  • (Class)

    a strategy class responding to .call



71
72
73
74
75
76
# File 'lib/fontisan/subset/table_strategy.rb', line 71

def self.for(tag)
  const_name = REGISTRY[tag]
  return PassThrough unless const_name

  const_get(const_name)
end