Class: CompareCompressors::Bzip2Compressor

Inherits:
Compressor
  • Object
show all
Defined in:
lib/compare_compressors/compressors/bzip2_compressor.rb

Overview

Compress with bzip2.

Instance Method Summary collapse

Methods inherited from Compressor

#display_name, #evaluate

Instance Method Details

#compression_command(target, level) ⇒ Object



29
30
31
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 29

def compression_command(target, level)
  ['bzip2', "-#{level}", target]
end

#decompression_command(target) ⇒ Object



33
34
35
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 33

def decompression_command(target)
  ['bunzip2', output_name(target)]
end

#extensionObject



12
13
14
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 12

def extension
  'bz2'
end

#levelsObject



16
17
18
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 16

def levels
  (1..9).to_a
end

#nameObject



8
9
10
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 8

def name
  'bzip2'
end

#versionObject



20
21
22
23
24
25
26
27
# File 'lib/compare_compressors/compressors/bzip2_compressor.rb', line 20

def version
  status, _times, _out, err = run(name, '--version')
  return nil unless status.zero?
  version_line = err.lines.first.chomp
  raise "bad #{name} version line: #{version_line.inspect}" unless
    version_line =~ /Version (.+)\.\z/
  Regexp.last_match(1)
end