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