Sha256: 39c1bfec754569fa3ec5c34ed1712cf0da1faec96de36812af8d3173c482101c

Contents?: true

Size: 885 Bytes

Versions: 2

Compression:

Stored size: 885 Bytes

Contents

module EY
  module Backup
    module GZipper
      extend Spawner
      extend self

      CHUNK_SIZE = 1024 * 64

      def gzip
        "gzip -c"
      end

      def gunzip
        "gunzip -c"
      end

      def extension
        ".gz"
      end

      def load(backup)
        output_files = backup.files.map do |input|
          if input =~ /\.gz$/
            output = input.sub(/\.gz$/, '')

            File.open(output, 'w') do |o|
              File.open(input, 'r') do |i|
                gz = Zlib::GzipReader.new(i)

                while chunk = gz.read(CHUNK_SIZE)
                  o << chunk
                end

                gz.close
              end
            end

            FileUtils.rm(input)

            output
          else
            input
          end
        end

        backup.files = output_files
        backup
      end
    end
  end
end


Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ey_cloud_server-1.4.5 lib/ey_backup/processors/gzipper.rb
ey_cloud_server-1.4.5.pre lib/ey_backup/processors/gzipper.rb