Sha256: 0a406d8cfa7637c62f4837c66c62ba64ff65d1a82215d0b6f11c14658e049766
Contents?: true
Size: 879 Bytes
Versions: 4
Compression:
Stored size: 879 Bytes
Contents
# frozen_string_literal: true module TTFunk module Reader private def io @file.contents end def read(bytes, format) io.read(bytes).unpack(format) end def read_signed(count) read(count * 2, 'n*').map { |i| to_signed(i) } end def to_signed(number) number >= 0x8000 ? -((number ^ 0xFFFF) + 1) : number end def parse_from(position) saved = io.pos io.pos = position result = yield position io.pos = saved result end # For debugging purposes def hexdump(string) bytes = string.unpack('C*') bytes.each_with_index do |c, i| printf('%02X', c) if (i + 1) % 16 == 0 puts elsif (i + 1) % 8 == 0 print ' ' else print ' ' end end puts unless bytes.length % 16 == 0 end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ttfunk-1.6.2.1 | lib/ttfunk/reader.rb |
ttfunk-1.6.2 | lib/ttfunk/reader.rb |
ttfunk-1.6.1 | lib/ttfunk/reader.rb |
ttfunk-1.6.0 | lib/ttfunk/reader.rb |