module Blockbuster::Packager

pure ruby implmentation of tar gzip and diff

Public Instance Methods

create_cassette_file() click to toggle source
# File lib/blockbuster/concerns/packager.rb, line 4
def create_cassette_file
  FileUtils.rm(file_path) if File.exist?(file_path)
  File.open(target_path, 'wb') do |file|
    Zlib::GzipWriter.wrap(file) do |gz|
      Gem::Package::TarWriter.new(gz) do |tar|
        configuration.cassette_files.each do |cass|
          tar_file(tar, cass)
        end
      end
    end
  end
end
tar_file(tar, file) click to toggle source
# File lib/blockbuster/concerns/packager.rb, line 17
def tar_file(tar, file)
  rel_path = configuration.key_from_path(file)

  if configuration.deltas_enabled?
    return unless @comparator.edited?(rel_path)
  end

  write_to_disk(tar, file)
end
write_to_disk(tar, file) click to toggle source
# File lib/blockbuster/concerns/packager.rb, line 27
def write_to_disk(tar, file)
  mode     = File.stat(file).mode
  rel_path = configuration.key_from_path(file)

  if File.directory?(file)
    tar.mkdir rel_path, mode
  else
    tar.add_file_simple rel_path, mode, File.size(file) do |io|
      File.open(file, 'rb') { |f| io.write f.read }
    end
  end
end