Sha256: b39a86321471b7b8f770c3f36c4da9921ff16068e932ceeb0552b740a5c8ba2a

Contents?: true

Size: 700 Bytes

Versions: 1

Compression:

Stored size: 700 Bytes

Contents

module TTFunk
  class Table
    class Directory < Table
      def initialize(fh)
        @scaler_type, @table_count, @search_range,
        @entry_selector, @range_shift = fh.read(12).unpack("Nnnnn")
        parse_table_list(fh)
      end
  
      def parse_table_list(fh)
        first_table = parse_table(fh)
        @tables = first_table
        offset = first_table[first_table.keys.first][:offset]

        @tables.update(parse_table(fh)) while fh.pos < offset
      end
  
      def parse_table(fh)
        tag, checksum, offset, length = fh.read(16).unpack("a4NNN")
        { tag => { 
            :checksum => checksum, :offset => offset, :length => length } }
      end    
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prawn-0.3.0 vendor/ttfunk/lib/ttfunk/table/directory.rb