Code coverage report for fontkit/src/WOFFFont.coffee

Statements: 94.74% (18 / 19)      Branches: 75% (3 / 4)      Functions: 100% (5 / 5)      Lines: 94.74% (18 / 19)      Ignored: none     

All files » fontkit/src/ » WOFFFont.coffee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321 1 1 1 1 1   1   13     2     4 4 4   4 3 3   1         3   1  
TTFFont = require './TTFFont'
WOFFDirectory = require './tables/WOFFDirectory'
tables = require './tables'
pako = require 'pako/lib/inflate'
toBuffer = require 'typedarray-to-buffer'
r = require 'restructure'
 
class WOFFFont extends TTFFont
  @probe: (buffer) ->
    return buffer.toString('ascii', 0, 4) is 'wOFF'
    
  _decodeDirectory: ->
    @directory = WOFFDirectory.decode(@stream, _startOffset: 0)
    
  _getTableStream: (tag) ->
    table = @directory.tables[tag]
    Eif table
      @stream.pos = table.offset
    
      if table.compLength < table.origLength
        buf = toBuffer pako.inflate @stream.readBuffer(table.compLength)
        return new r.DecodeStream(buf)
      else
        return @stream
        
    return null
    
  _decodeTable: (table) ->
    return tables[table.tag].decode(@_getTableStream(table.tag), this, table.origLength)
    
module.exports = WOFFFont