lib/ttfunk/table/cmap/subtable.rb in ttfunk-1.4.0 vs lib/ttfunk/table/cmap/subtable.rb in ttfunk-1.5.0

- old
+ new

@@ -9,74 +9,81 @@ attr_reader :platform_id attr_reader :encoding_id attr_reader :format ENCODING_MAPPINGS = { - :mac_roman => { :platform_id => 1, :encoding_id => 0 }, - # use microsoft unicode, instead of generic unicode, for optimal windows support - :unicode => { :platform_id => 3, :encoding_id => 1 }, - :unicode_ucs4 => { :platform_id => 3, :encoding_id => 10 } - } + mac_roman: { platform_id: 1, encoding_id: 0 }.freeze, + # Use microsoft unicode, instead of generic unicode, for optimal + # Windows support + unicode: { platform_id: 3, encoding_id: 1 }.freeze, + unicode_ucs4: { platform_id: 3, encoding_id: 10 }.freeze + }.freeze def self.encode(charmap, encoding) case encoding when :mac_roman result = Format00.encode(charmap) when :unicode result = Format04.encode(charmap) when :unicode_ucs4 result = Format12.encode(charmap) else - raise NotImplementedError, "encoding #{encoding.inspect} is not supported" + raise NotImplementedError, + "encoding #{encoding.inspect} is not supported" end mapping = ENCODING_MAPPINGS[encoding] # platform-id, encoding-id, offset - result[:subtable] = [mapping[:platform_id], mapping[:encoding_id], - 12, result[:subtable]].pack("nnNA*") + result[:subtable] = [ + mapping[:platform_id], + mapping[:encoding_id], + 12, + result[:subtable] + ].pack('nnNA*') - return result + result end def initialize(file, table_start) @file = file - @platform_id, @encoding_id, @offset = read(8, "nnN") + @platform_id, @encoding_id, @offset = read(8, 'nnN') @offset += table_start parse_from(@offset) do - @format = read(2, "n").first + @format = read(2, 'n').first case @format - when 0 then extend(TTFunk::Table::Cmap::Format00) - when 4 then extend(TTFunk::Table::Cmap::Format04) - when 6 then extend(TTFunk::Table::Cmap::Format06) - when 10 then extend(TTFunk::Table::Cmap::Format10) - when 12 then extend(TTFunk::Table::Cmap::Format12) + when 0 then extend(TTFunk::Table::Cmap::Format00) + when 4 then extend(TTFunk::Table::Cmap::Format04) + when 6 then extend(TTFunk::Table::Cmap::Format06) + when 10 then extend(TTFunk::Table::Cmap::Format10) + when 12 then extend(TTFunk::Table::Cmap::Format12) end parse_cmap! end end def unicode? - platform_id == 3 && (encoding_id == 1 || encoding_id == 10) && format != 0 || - platform_id == 0 && format != 0 + platform_id == 3 && (encoding_id == 1 || encoding_id == 10) && + format != 0 || + platform_id == 0 && format != 0 end def supported? false end - def [](code) + def [](_code) raise NotImplementedError, "cmap format #{@format} is not supported" end private - def parse_cmap! - # do nothing... - end + def parse_cmap! + # do nothing... + end end end end end