Class: CompareCompressors::SevenZipCompressor
- Inherits:
-
Compressor
- Object
- Compressor
- CompareCompressors::SevenZipCompressor
- Defined in:
- lib/compare_compressors/compressors/seven_zip_compressor.rb
Overview
Compress with ‘7z`.
Instance Method Summary collapse
- #compression_command(target, level) ⇒ Object
- #decompression_command(target) ⇒ Object
- #display_name ⇒ Object
- #extension ⇒ Object
-
#levels ⇒ Object
Based on share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm Level 0 is no compression, so we exclude it.
- #name ⇒ Object
- #version ⇒ Object
Methods inherited from Compressor
Instance Method Details
#compression_command(target, level) ⇒ Object
35 36 37 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 35 def compression_command(target, level) ['7zr', 'a', "-mx=#{level}", output_name(target), target] end |
#decompression_command(target) ⇒ Object
39 40 41 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 39 def decompression_command(target) ['7zr', 'x', "-o#{File.dirname(target)}", output_name(target)] end |
#display_name ⇒ Object
12 13 14 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 12 def display_name '7z' end |
#extension ⇒ Object
16 17 18 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 16 def extension '7z' end |
#levels ⇒ Object
Based on share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm Level 0 is no compression, so we exclude it.
22 23 24 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 22 def levels [1, 3, 5, 7, 9] end |
#name ⇒ Object
8 9 10 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 8 def name 'seven_zip' end |
#version ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/compare_compressors/compressors/seven_zip_compressor.rb', line 26 def version status, _times, out, _err = run('7zr', '--help') return nil unless status.zero? version_line = out.strip.lines.first.chomp raise "bad version line #{version_line}" unless version_line =~ /([0-9.]+)[\s:]+Copyright/ Regexp.last_match(1) end |