File: header.rb

package info (click to toggle)
ruby-ttfunk 1.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,472 kB
  • sloc: ruby: 7,954; makefile: 7
file content (46 lines) | stat: -rw-r--r-- 983 bytes parent folder | download
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# frozen_string_literal: true

module TTFunk
  class Table
    class Cff < TTFunk::Table
      # CFF Header.
      class Header < TTFunk::SubTable
        # CFF table major version.
        # @return [Integer]
        attr_reader :major

        # CFF table minor version.
        # @return [Integer]
        attr_reader :minor

        # Size of the header itself.
        # @return [Integer]
        attr_reader :header_size

        # Size of all offsets from beginning of table.
        # @return [Integer]
        attr_reader :absolute_offset_size

        # Length of header.
        #
        # @return [Integer]
        def length
          4
        end

        # Encode header.
        #
        # @return [String]
        def encode
          [major, minor, header_size, absolute_offset_size].pack('C*')
        end

        private

        def parse!
          @major, @minor, @header_size, @absolute_offset_size = read(4, 'C*')
        end
      end
    end
  end
end