Module: Blockbuster::Packager
Overview
pure ruby implmentation of tar gzip and diff
Instance Method Summary collapse
Instance Method Details
#create_cassette_file ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# 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) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# 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) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# 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 |