Sha256: 7a17587e24ad675a443ada078d038803407b4c89d459a91a34fdb34e7174e6ee

Contents?: true

Size: 885 Bytes

Versions: 4

Compression:

Stored size: 885 Bytes

Contents

module Fontist
  module Import
    module Extractors
      class CpioExtractor < Extractor
        def extract
          dir = Dir.mktmpdir
          extract_cpio(@archive, dir)
          dir
        end

        def format
          "cpio"
        end

        private

        def extract_cpio(archive, dir)
          archive_file = File.open(archive, "rb")

          reader_class.new(archive_file).each do |entry, file|
            path = File.join(dir, entry.name)
            if entry.directory?
              FileUtils.mkdir_p(path)
            else
              File.write(path, file.read)
            end
          end
        end

        def reader_class
          @reader_class ||= begin
                              require "fontist/utils/cpio/cpio"
                              CPIO::ASCIIReader
                            end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fontist-1.8.7 lib/fontist/import/extractors/cpio_extractor.rb
fontist-1.8.6 lib/fontist/import/extractors/cpio_extractor.rb
fontist-1.8.5 lib/fontist/import/extractors/cpio_extractor.rb
fontist-1.8.4 lib/fontist/import/extractors/cpio_extractor.rb