Class: CompareCompressors::ZstdCompressor

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

Overview

Compress with Zstandard.

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/zstd_compressor.rb', line 29

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

#decompression_command(target) ⇒ Object



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

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

#extensionObject



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

def extension
  'zst'
end

#levelsObject



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

def levels
  (1..19).to_a
end

#nameObject



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

def name
  'zstd'
end

#versionObject



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

def version
  status, _times, out, _err = run(name, '-V')
  return nil unless status.zero?
  version_line = out.lines.first.chomp
  raise "bad version line #{version_line}" unless
    version_line =~ /([0-9.]+),/
  Regexp.last_match(1)
end