Sha256: b99c96d079e1061199dc392f5fd82d8d6a1eb3512c7ce4364bf2ba72d34cdb57

Contents?: true

Size: 1.09 KB

Versions: 23

Compression:

Stored size: 1.09 KB

Contents

require "extract_ttc"
require "fontist/import/helpers/system_helper"
require_relative "../otf/font_file"

module Fontist
  module Import
    module Files
      class CollectionFile
        attr_reader :fonts

        def initialize(path)
          @path = path
          @fonts = read
          @extension = "ttc"
        end

        def filename
          File.basename(@path, ".*") + "." + @extension
        end

        def source_filename
          File.basename(@path) unless filename == File.basename(@path)
        end

        private

        def read
          switch_to_temp_dir do |tmp_dir|
            extract_ttfs(tmp_dir).map do |path|
              Otf::FontFile.new(path)
            end
          end
        end

        def switch_to_temp_dir
          Dir.mktmpdir do |tmp_dir|
            Dir.chdir(tmp_dir) do
              yield tmp_dir
            end
          end
        end

        def extract_ttfs(tmp_dir)
          filenames = ExtractTtc.extract(@path)
          filenames.map do |filename|
            File.join(tmp_dir, filename)
          end
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
fontist-1.9.3 lib/fontist/import/files/collection_file.rb
fontist-1.9.2 lib/fontist/import/files/collection_file.rb
fontist-1.10.1 lib/fontist/import/files/collection_file.rb
fontist-1.10.0 lib/fontist/import/files/collection_file.rb
fontist-1.9.1 lib/fontist/import/files/collection_file.rb
fontist-1.9.0 lib/fontist/import/files/collection_file.rb
fontist-1.8.13 lib/fontist/import/files/collection_file.rb
fontist-1.8.12 lib/fontist/import/files/collection_file.rb
fontist-1.8.11 lib/fontist/import/files/collection_file.rb
fontist-1.8.10 lib/fontist/import/files/collection_file.rb
fontist-1.8.9 lib/fontist/import/files/collection_file.rb
fontist-1.8.8 lib/fontist/import/files/collection_file.rb
fontist-1.8.7 lib/fontist/import/files/collection_file.rb
fontist-1.8.6 lib/fontist/import/files/collection_file.rb
fontist-1.8.5 lib/fontist/import/files/collection_file.rb
fontist-1.8.4 lib/fontist/import/files/collection_file.rb
fontist-1.8.3 lib/fontist/import/files/collection_file.rb
fontist-1.8.2 lib/fontist/import/files/collection_file.rb
fontist-1.8.1 lib/fontist/import/files/collection_file.rb
fontist-1.7.3 lib/fontist/import/files/collection_file.rb