Class: TTFunk::Table::Cmap

Inherits:
TTFunk::Table show all
Defined in:
lib/ttfunk/table/cmap.rb,
lib/ttfunk/table/cmap/format00.rb,
lib/ttfunk/table/cmap/format04.rb,
lib/ttfunk/table/cmap/format06.rb,
lib/ttfunk/table/cmap/format10.rb,
lib/ttfunk/table/cmap/format12.rb,
lib/ttfunk/table/cmap/subtable.rb

Defined Under Namespace

Modules: Format00, Format04, Format06, Format10, Format12 Classes: Subtable

Instance Attribute Summary collapse

Attributes inherited from TTFunk::Table

#file, #length, #offset

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TTFunk::Table

#exists?, #initialize, #raw, #tag

Constructor Details

This class inherits a constructor from TTFunk::Table

Instance Attribute Details

#tablesObject (readonly)

Returns the value of attribute tables.



5
6
7
# File 'lib/ttfunk/table/cmap.rb', line 5

def tables
  @tables
end

#versionObject (readonly)

Returns the value of attribute version.



4
5
6
# File 'lib/ttfunk/table/cmap.rb', line 4

def version
  @version
end

Class Method Details

.encode(charmap, encoding) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/ttfunk/table/cmap.rb', line 7

def self.encode(charmap, encoding)
  result = Cmap::Subtable.encode(charmap, encoding)

  # pack 'version' and 'table-count'
  result[:table] = [0, 1, result.delete(:subtable)].pack("nnA*")
  return result
end

Instance Method Details

#unicodeObject



15
16
17
18
19
20
# File 'lib/ttfunk/table/cmap.rb', line 15

def unicode
  # Because most callers just call .first on the result, put tables with 
  # highest-number format first. Unsupported formats will be ignored.
  @unicode ||= @tables.select { |table| table.unicode? && table.supported? }
                      .sort{|a,b| b.format <=> a.format }
end