module TTFunk::Reader
Private Instance Methods
hexdump(string)
click to toggle source
For debugging purposes
# File lib/ttfunk/reader.rb, line 30 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
io()
click to toggle source
# File lib/ttfunk/reader.rb, line 5 def io @file.contents end
parse_from(position) { |position| ... }
click to toggle source
# File lib/ttfunk/reader.rb, line 21 def parse_from(position) saved = io.pos io.pos = position result = yield position io.pos = saved result end
read(bytes, format)
click to toggle source
# File lib/ttfunk/reader.rb, line 9 def read(bytes, format) io.read(bytes).unpack(format) end
read_signed(count)
click to toggle source
# File lib/ttfunk/reader.rb, line 13 def read_signed(count) read(count * 2, 'n*').map { |i| to_signed(i) } end
to_signed(n)
click to toggle source
# File lib/ttfunk/reader.rb, line 17 def to_signed(n) n >= 0x8000 ? -((n ^ 0xFFFF) + 1) : n end