omnizip 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +32 -0
  4. data/.rubocop_todo.yml +754 -0
  5. data/COPYING +502 -0
  6. data/Gemfile +17 -0
  7. data/LICENSE +12 -0
  8. data/README.adoc +1045 -0
  9. data/Rakefile +12 -0
  10. data/benchmark/README.md +260 -0
  11. data/benchmark/benchmark_suite.rb +125 -0
  12. data/benchmark/compression_bench.rb +181 -0
  13. data/benchmark/filter_bench.rb +180 -0
  14. data/benchmark/models/benchmark_result.rb +59 -0
  15. data/benchmark/models/comparison_result.rb +69 -0
  16. data/benchmark/profile_suite.rb +167 -0
  17. data/benchmark/reporter.rb +150 -0
  18. data/benchmark/run_benchmarks.rb +66 -0
  19. data/benchmark/test_data.rb +137 -0
  20. data/config/formats/rar3_spec.yml +91 -0
  21. data/config/formats/rar5_spec.yml +102 -0
  22. data/docs/.github/workflows/docs.yml +142 -0
  23. data/docs/.gitignore +21 -0
  24. data/docs/.lychee.toml +67 -0
  25. data/docs/Gemfile +13 -0
  26. data/docs/RAR_WRITE_SUPPORT.md +26 -0
  27. data/docs/README.md +101 -0
  28. data/docs/_config.yml +112 -0
  29. data/docs/assets/logo.svg +1 -0
  30. data/docs/assets/omnizip-logo.pdf +1540 -11
  31. data/docs/comparison/feature-matrix.adoc +694 -0
  32. data/docs/comparison/index.adoc +113 -0
  33. data/docs/comparison/vs-7zip.adoc +309 -0
  34. data/docs/comparison/vs-peazip.adoc +77 -0
  35. data/docs/comparison/vs-rubyzip.adoc +342 -0
  36. data/docs/comparison/vs-winrar.adoc +100 -0
  37. data/docs/compatibility.adoc +579 -0
  38. data/docs/concepts/index.adoc +129 -0
  39. data/docs/developer/architecture.adoc +256 -0
  40. data/docs/developer/contributing.adoc +158 -0
  41. data/docs/developer/index.adoc +25 -0
  42. data/docs/developer/testing.adoc +212 -0
  43. data/docs/getting-started/basic-usage.adoc +271 -0
  44. data/docs/getting-started/index.adoc +42 -0
  45. data/docs/getting-started/installation.adoc +138 -0
  46. data/docs/getting-started/quick-start.adoc +185 -0
  47. data/docs/getting-started/your-first-archive.adoc +218 -0
  48. data/docs/guides/advanced-features/encryption.adoc +300 -0
  49. data/docs/guides/advanced-features/index.adoc +49 -0
  50. data/docs/guides/advanced-features/parallel-processing.adoc +246 -0
  51. data/docs/guides/advanced-features/progress-tracking.adoc +320 -0
  52. data/docs/guides/advanced-features/streaming.adoc +212 -0
  53. data/docs/guides/archive-formats/gzip-format.adoc +107 -0
  54. data/docs/guides/archive-formats/index.adoc +130 -0
  55. data/docs/guides/archive-formats/rar-format.adoc +104 -0
  56. data/docs/guides/archive-formats/rar5.adoc +521 -0
  57. data/docs/guides/archive-formats/seven-zip-format.adoc +35 -0
  58. data/docs/guides/archive-formats/tar-format.adoc +106 -0
  59. data/docs/guides/archive-formats/xz-format.adoc +118 -0
  60. data/docs/guides/archive-formats/zip-format.adoc +35 -0
  61. data/docs/guides/compression-algorithms/bzip2.adoc +113 -0
  62. data/docs/guides/compression-algorithms/deflate.adoc +319 -0
  63. data/docs/guides/compression-algorithms/index.adoc +190 -0
  64. data/docs/guides/compression-algorithms/lzma.adoc +398 -0
  65. data/docs/guides/compression-algorithms/lzma2.adoc +327 -0
  66. data/docs/guides/compression-algorithms/ppmd.adoc +316 -0
  67. data/docs/guides/compression-algorithms/zstandard.adoc +361 -0
  68. data/docs/guides/creating-archives.adoc +354 -0
  69. data/docs/guides/extracting-archives.adoc +53 -0
  70. data/docs/guides/format-conversion.adoc +64 -0
  71. data/docs/guides/index.adoc +49 -0
  72. data/docs/guides/migration-rubyzip.adoc +217 -0
  73. data/docs/guides/parity-archives.adoc +605 -0
  74. data/docs/guides/performance-tuning.adoc +88 -0
  75. data/docs/index.adoc +218 -0
  76. data/docs/lychee.toml +67 -0
  77. data/docs/reference/api/overview.adoc +188 -0
  78. data/docs/reference/cli/compress-command.adoc +114 -0
  79. data/docs/reference/cli/overview.adoc +140 -0
  80. data/docs/reference/index.adoc +26 -0
  81. data/docs/resources/faq.adoc +185 -0
  82. data/docs/resources/quick-reference.adoc +222 -0
  83. data/docs/troubleshooting/index.adoc +208 -0
  84. data/examples/api_comparison.rb +205 -0
  85. data/examples/deflate64_example.rb +96 -0
  86. data/examples/par2_demo.rb +121 -0
  87. data/examples/quick_start_native.rb +150 -0
  88. data/examples/quick_start_rubyzip.rb +115 -0
  89. data/examples/rubyzip_compatibility_demo.rb +194 -0
  90. data/exe/omnizip +27 -0
  91. data/lib/omnizip/algorithm.rb +130 -0
  92. data/lib/omnizip/algorithm_registry.rb +86 -0
  93. data/lib/omnizip/algorithms/.keep +0 -0
  94. data/lib/omnizip/algorithms/bzip2/bwt.rb +225 -0
  95. data/lib/omnizip/algorithms/bzip2/decoder.rb +193 -0
  96. data/lib/omnizip/algorithms/bzip2/encoder.rb +237 -0
  97. data/lib/omnizip/algorithms/bzip2/huffman.rb +206 -0
  98. data/lib/omnizip/algorithms/bzip2/mtf.rb +101 -0
  99. data/lib/omnizip/algorithms/bzip2/rle.rb +151 -0
  100. data/lib/omnizip/algorithms/bzip2.rb +130 -0
  101. data/lib/omnizip/algorithms/deflate/constants.rb +28 -0
  102. data/lib/omnizip/algorithms/deflate/decoder.rb +38 -0
  103. data/lib/omnizip/algorithms/deflate/encoder.rb +46 -0
  104. data/lib/omnizip/algorithms/deflate.rb +128 -0
  105. data/lib/omnizip/algorithms/deflate64/constants.rb +45 -0
  106. data/lib/omnizip/algorithms/deflate64/decoder.rb +153 -0
  107. data/lib/omnizip/algorithms/deflate64/encoder.rb +98 -0
  108. data/lib/omnizip/algorithms/deflate64/huffman_coder.rb +354 -0
  109. data/lib/omnizip/algorithms/deflate64/lz77_encoder.rb +142 -0
  110. data/lib/omnizip/algorithms/deflate64.rb +109 -0
  111. data/lib/omnizip/algorithms/lzma/bit_model.rb +120 -0
  112. data/lib/omnizip/algorithms/lzma/constants.rb +112 -0
  113. data/lib/omnizip/algorithms/lzma/decoder.rb +148 -0
  114. data/lib/omnizip/algorithms/lzma/dictionary.rb +69 -0
  115. data/lib/omnizip/algorithms/lzma/distance_coder.rb +415 -0
  116. data/lib/omnizip/algorithms/lzma/encoder.rb +142 -0
  117. data/lib/omnizip/algorithms/lzma/length_coder.rb +260 -0
  118. data/lib/omnizip/algorithms/lzma/literal_decoder.rb +320 -0
  119. data/lib/omnizip/algorithms/lzma/literal_encoder.rb +210 -0
  120. data/lib/omnizip/algorithms/lzma/lzip_decoder.rb +341 -0
  121. data/lib/omnizip/algorithms/lzma/lzma_alone_decoder.rb +192 -0
  122. data/lib/omnizip/algorithms/lzma/lzma_state.rb +128 -0
  123. data/lib/omnizip/algorithms/lzma/match.rb +32 -0
  124. data/lib/omnizip/algorithms/lzma/match_finder.rb +205 -0
  125. data/lib/omnizip/algorithms/lzma/match_finder_config.rb +142 -0
  126. data/lib/omnizip/algorithms/lzma/match_finder_factory.rb +88 -0
  127. data/lib/omnizip/algorithms/lzma/optimal_encoder.rb +130 -0
  128. data/lib/omnizip/algorithms/lzma/probability_models.rb +72 -0
  129. data/lib/omnizip/algorithms/lzma/range_coder.rb +85 -0
  130. data/lib/omnizip/algorithms/lzma/range_decoder.rb +434 -0
  131. data/lib/omnizip/algorithms/lzma/range_encoder.rb +194 -0
  132. data/lib/omnizip/algorithms/lzma/state.rb +127 -0
  133. data/lib/omnizip/algorithms/lzma/xz_buffered_range_encoder.rb +325 -0
  134. data/lib/omnizip/algorithms/lzma/xz_encoder.rb +426 -0
  135. data/lib/omnizip/algorithms/lzma/xz_encoder_fast.rb +645 -0
  136. data/lib/omnizip/algorithms/lzma/xz_match_finder_adapter.rb +227 -0
  137. data/lib/omnizip/algorithms/lzma/xz_price_calculator.rb +169 -0
  138. data/lib/omnizip/algorithms/lzma/xz_probability_models.rb +261 -0
  139. data/lib/omnizip/algorithms/lzma/xz_range_encoder.rb +223 -0
  140. data/lib/omnizip/algorithms/lzma/xz_range_encoder_exact.rb +331 -0
  141. data/lib/omnizip/algorithms/lzma/xz_state.rb +116 -0
  142. data/lib/omnizip/algorithms/lzma/xz_utils_decoder.rb +2055 -0
  143. data/lib/omnizip/algorithms/lzma.rb +238 -0
  144. data/lib/omnizip/algorithms/lzma2/chunk_manager.rb +182 -0
  145. data/lib/omnizip/algorithms/lzma2/constants.rb +41 -0
  146. data/lib/omnizip/algorithms/lzma2/encoder.rb +147 -0
  147. data/lib/omnizip/algorithms/lzma2/lzma2_chunk.rb +161 -0
  148. data/lib/omnizip/algorithms/lzma2/properties.rb +179 -0
  149. data/lib/omnizip/algorithms/lzma2/simple_lzma2_encoder.rb +127 -0
  150. data/lib/omnizip/algorithms/lzma2/xz_encoder_adapter.rb +85 -0
  151. data/lib/omnizip/algorithms/lzma2.rb +141 -0
  152. data/lib/omnizip/algorithms/ppmd7/constants.rb +74 -0
  153. data/lib/omnizip/algorithms/ppmd7/context.rb +154 -0
  154. data/lib/omnizip/algorithms/ppmd7/decoder.rb +126 -0
  155. data/lib/omnizip/algorithms/ppmd7/encoder.rb +163 -0
  156. data/lib/omnizip/algorithms/ppmd7/model.rb +248 -0
  157. data/lib/omnizip/algorithms/ppmd7/symbol_state.rb +57 -0
  158. data/lib/omnizip/algorithms/ppmd7.rb +116 -0
  159. data/lib/omnizip/algorithms/ppmd8/constants.rb +61 -0
  160. data/lib/omnizip/algorithms/ppmd8/context.rb +34 -0
  161. data/lib/omnizip/algorithms/ppmd8/decoder.rb +107 -0
  162. data/lib/omnizip/algorithms/ppmd8/encoder.rb +138 -0
  163. data/lib/omnizip/algorithms/ppmd8/model.rb +250 -0
  164. data/lib/omnizip/algorithms/ppmd8/restoration_method.rb +78 -0
  165. data/lib/omnizip/algorithms/ppmd8.rb +82 -0
  166. data/lib/omnizip/algorithms/ppmd_base.rb +138 -0
  167. data/lib/omnizip/algorithms/sevenzip_lzma2.rb +123 -0
  168. data/lib/omnizip/algorithms/xz_lzma2.rb +118 -0
  169. data/lib/omnizip/algorithms/zstandard/constants.rb +25 -0
  170. data/lib/omnizip/algorithms/zstandard/decoder.rb +46 -0
  171. data/lib/omnizip/algorithms/zstandard/encoder.rb +51 -0
  172. data/lib/omnizip/algorithms/zstandard.rb +138 -0
  173. data/lib/omnizip/buffer/memory_archive.rb +251 -0
  174. data/lib/omnizip/buffer/memory_extractor.rb +224 -0
  175. data/lib/omnizip/buffer.rb +176 -0
  176. data/lib/omnizip/checksum_registry.rb +114 -0
  177. data/lib/omnizip/checksums/crc32.rb +100 -0
  178. data/lib/omnizip/checksums/crc64.rb +101 -0
  179. data/lib/omnizip/checksums/crc_base.rb +158 -0
  180. data/lib/omnizip/checksums/verifier.rb +131 -0
  181. data/lib/omnizip/chunked/memory_manager.rb +194 -0
  182. data/lib/omnizip/chunked/reader.rb +78 -0
  183. data/lib/omnizip/chunked/writer.rb +120 -0
  184. data/lib/omnizip/chunked.rb +129 -0
  185. data/lib/omnizip/cli/output_formatter.rb +104 -0
  186. data/lib/omnizip/cli.rb +572 -0
  187. data/lib/omnizip/commands/.keep +0 -0
  188. data/lib/omnizip/commands/archive_create_command.rb +427 -0
  189. data/lib/omnizip/commands/archive_extract_command.rb +272 -0
  190. data/lib/omnizip/commands/archive_list_command.rb +218 -0
  191. data/lib/omnizip/commands/archive_repair_command.rb +131 -0
  192. data/lib/omnizip/commands/archive_verify_command.rb +117 -0
  193. data/lib/omnizip/commands/compress_command.rb +117 -0
  194. data/lib/omnizip/commands/decompress_command.rb +120 -0
  195. data/lib/omnizip/commands/list_command.rb +53 -0
  196. data/lib/omnizip/commands/metadata_command.rb +153 -0
  197. data/lib/omnizip/commands/parity_create_command.rb +122 -0
  198. data/lib/omnizip/commands/parity_repair_command.rb +122 -0
  199. data/lib/omnizip/commands/parity_verify_command.rb +124 -0
  200. data/lib/omnizip/commands/profile_list_command.rb +56 -0
  201. data/lib/omnizip/commands/profile_show_command.rb +44 -0
  202. data/lib/omnizip/convenience.rb +359 -0
  203. data/lib/omnizip/converter/conversion_registry.rb +49 -0
  204. data/lib/omnizip/converter/conversion_strategy.rb +121 -0
  205. data/lib/omnizip/converter/seven_zip_to_zip_strategy.rb +97 -0
  206. data/lib/omnizip/converter/zip_to_seven_zip_strategy.rb +112 -0
  207. data/lib/omnizip/converter.rb +105 -0
  208. data/lib/omnizip/crypto/aes256/cipher.rb +100 -0
  209. data/lib/omnizip/crypto/aes256/constants.rb +28 -0
  210. data/lib/omnizip/crypto/aes256/key_derivation.rb +101 -0
  211. data/lib/omnizip/crypto/aes256.rb +102 -0
  212. data/lib/omnizip/error.rb +106 -0
  213. data/lib/omnizip/eta/exponential_smoothing_estimator.rb +98 -0
  214. data/lib/omnizip/eta/moving_average_estimator.rb +99 -0
  215. data/lib/omnizip/eta/rate_calculator.rb +104 -0
  216. data/lib/omnizip/eta/sample_history.rb +143 -0
  217. data/lib/omnizip/eta/time_estimator.rb +106 -0
  218. data/lib/omnizip/eta.rb +63 -0
  219. data/lib/omnizip/extraction/filter_chain.rb +177 -0
  220. data/lib/omnizip/extraction/glob_pattern.rb +140 -0
  221. data/lib/omnizip/extraction/pattern_matcher.rb +70 -0
  222. data/lib/omnizip/extraction/predicate_pattern.rb +52 -0
  223. data/lib/omnizip/extraction/regex_pattern.rb +50 -0
  224. data/lib/omnizip/extraction/selective_extractor.rb +240 -0
  225. data/lib/omnizip/extraction.rb +111 -0
  226. data/lib/omnizip/file_type/mime_classifier.rb +144 -0
  227. data/lib/omnizip/file_type.rb +113 -0
  228. data/lib/omnizip/filter.rb +139 -0
  229. data/lib/omnizip/filter_pipeline.rb +108 -0
  230. data/lib/omnizip/filter_registry.rb +166 -0
  231. data/lib/omnizip/filters/bcj.rb +279 -0
  232. data/lib/omnizip/filters/bcj2/constants.rb +53 -0
  233. data/lib/omnizip/filters/bcj2/decoder.rb +200 -0
  234. data/lib/omnizip/filters/bcj2/encoder.rb +61 -0
  235. data/lib/omnizip/filters/bcj2/stream_data.rb +93 -0
  236. data/lib/omnizip/filters/bcj2.rb +99 -0
  237. data/lib/omnizip/filters/bcj_arm.rb +176 -0
  238. data/lib/omnizip/filters/bcj_arm64.rb +244 -0
  239. data/lib/omnizip/filters/bcj_ia64.rb +196 -0
  240. data/lib/omnizip/filters/bcj_ppc.rb +190 -0
  241. data/lib/omnizip/filters/bcj_sparc.rb +176 -0
  242. data/lib/omnizip/filters/bcj_x86.rb +193 -0
  243. data/lib/omnizip/filters/delta.rb +196 -0
  244. data/lib/omnizip/filters/filter_base.rb +72 -0
  245. data/lib/omnizip/filters/registry.rb +123 -0
  246. data/lib/omnizip/filters/xz_delta.rb +258 -0
  247. data/lib/omnizip/format_detector.rb +162 -0
  248. data/lib/omnizip/format_registry.rb +59 -0
  249. data/lib/omnizip/formats/.keep +0 -0
  250. data/lib/omnizip/formats/bzip2_file.rb +172 -0
  251. data/lib/omnizip/formats/cpio/constants.rb +55 -0
  252. data/lib/omnizip/formats/cpio/entry.rb +385 -0
  253. data/lib/omnizip/formats/cpio/reader.rb +196 -0
  254. data/lib/omnizip/formats/cpio/writer.rb +234 -0
  255. data/lib/omnizip/formats/cpio.rb +140 -0
  256. data/lib/omnizip/formats/format_spec_loader.rb +230 -0
  257. data/lib/omnizip/formats/gzip.rb +238 -0
  258. data/lib/omnizip/formats/iso/directory_builder.rb +297 -0
  259. data/lib/omnizip/formats/iso/directory_record.rb +152 -0
  260. data/lib/omnizip/formats/iso/joliet.rb +204 -0
  261. data/lib/omnizip/formats/iso/path_table.rb +125 -0
  262. data/lib/omnizip/formats/iso/reader.rb +197 -0
  263. data/lib/omnizip/formats/iso/rock_ridge.rb +349 -0
  264. data/lib/omnizip/formats/iso/volume_builder.rb +320 -0
  265. data/lib/omnizip/formats/iso/volume_descriptor.rb +168 -0
  266. data/lib/omnizip/formats/iso/writer.rb +530 -0
  267. data/lib/omnizip/formats/iso.rb +140 -0
  268. data/lib/omnizip/formats/lzip.rb +175 -0
  269. data/lib/omnizip/formats/lzma_alone.rb +171 -0
  270. data/lib/omnizip/formats/rar/archive_repairer.rb +243 -0
  271. data/lib/omnizip/formats/rar/archive_verifier.rb +195 -0
  272. data/lib/omnizip/formats/rar/block_parser.rb +243 -0
  273. data/lib/omnizip/formats/rar/compression/bit_stream.rb +180 -0
  274. data/lib/omnizip/formats/rar/compression/dispatcher.rb +217 -0
  275. data/lib/omnizip/formats/rar/compression/lz77_huffman/decoder.rb +216 -0
  276. data/lib/omnizip/formats/rar/compression/lz77_huffman/encoder.rb +158 -0
  277. data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_builder.rb +217 -0
  278. data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_coder.rb +189 -0
  279. data/lib/omnizip/formats/rar/compression/lz77_huffman/match_finder.rb +135 -0
  280. data/lib/omnizip/formats/rar/compression/lz77_huffman/sliding_window.rb +165 -0
  281. data/lib/omnizip/formats/rar/compression/ppmd/context.rb +105 -0
  282. data/lib/omnizip/formats/rar/compression/ppmd/decoder.rb +219 -0
  283. data/lib/omnizip/formats/rar/compression/ppmd/encoder.rb +262 -0
  284. data/lib/omnizip/formats/rar/compression_method_registry.rb +106 -0
  285. data/lib/omnizip/formats/rar/constants.rb +82 -0
  286. data/lib/omnizip/formats/rar/decompressor.rb +238 -0
  287. data/lib/omnizip/formats/rar/external_writer.rb +312 -0
  288. data/lib/omnizip/formats/rar/header.rb +192 -0
  289. data/lib/omnizip/formats/rar/license_validator.rb +109 -0
  290. data/lib/omnizip/formats/rar/models/rar_archive.rb +77 -0
  291. data/lib/omnizip/formats/rar/models/rar_entry.rb +65 -0
  292. data/lib/omnizip/formats/rar/models/rar_volume.rb +56 -0
  293. data/lib/omnizip/formats/rar/parity_handler.rb +292 -0
  294. data/lib/omnizip/formats/rar/rar5/compression/lzma.rb +202 -0
  295. data/lib/omnizip/formats/rar/rar5/compression/lzss.rb +578 -0
  296. data/lib/omnizip/formats/rar/rar5/compression/store.rb +60 -0
  297. data/lib/omnizip/formats/rar/rar5/crc32.rb +39 -0
  298. data/lib/omnizip/formats/rar/rar5/encryption/aes256_cbc.rb +97 -0
  299. data/lib/omnizip/formats/rar/rar5/encryption/encryption_header.rb +114 -0
  300. data/lib/omnizip/formats/rar/rar5/encryption/encryption_manager.rb +166 -0
  301. data/lib/omnizip/formats/rar/rar5/encryption/key_derivation.rb +97 -0
  302. data/lib/omnizip/formats/rar/rar5/header.rb +187 -0
  303. data/lib/omnizip/formats/rar/rar5/models/encryption_options.rb +74 -0
  304. data/lib/omnizip/formats/rar/rar5/models/recovery_options.rb +63 -0
  305. data/lib/omnizip/formats/rar/rar5/models/solid_options.rb +63 -0
  306. data/lib/omnizip/formats/rar/rar5/models/volume_options.rb +74 -0
  307. data/lib/omnizip/formats/rar/rar5/multi_volume/ARCHITECTURE.md +290 -0
  308. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_manager.rb +264 -0
  309. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_splitter.rb +155 -0
  310. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_writer.rb +194 -0
  311. data/lib/omnizip/formats/rar/rar5/solid/solid_encoder.rb +109 -0
  312. data/lib/omnizip/formats/rar/rar5/solid/solid_manager.rb +142 -0
  313. data/lib/omnizip/formats/rar/rar5/solid/solid_stream.rb +121 -0
  314. data/lib/omnizip/formats/rar/rar5/vint.rb +65 -0
  315. data/lib/omnizip/formats/rar/rar5/writer.rb +466 -0
  316. data/lib/omnizip/formats/rar/rar_format_base.rb +241 -0
  317. data/lib/omnizip/formats/rar/reader.rb +366 -0
  318. data/lib/omnizip/formats/rar/recovery_record.rb +245 -0
  319. data/lib/omnizip/formats/rar/volume_manager.rb +168 -0
  320. data/lib/omnizip/formats/rar/writer.rb +431 -0
  321. data/lib/omnizip/formats/rar.rb +205 -0
  322. data/lib/omnizip/formats/rar3/compressor.rb +73 -0
  323. data/lib/omnizip/formats/rar3/decompressor.rb +66 -0
  324. data/lib/omnizip/formats/rar3/reader.rb +386 -0
  325. data/lib/omnizip/formats/rar3/writer.rb +219 -0
  326. data/lib/omnizip/formats/rar5/compressor.rb +73 -0
  327. data/lib/omnizip/formats/rar5/decompressor.rb +66 -0
  328. data/lib/omnizip/formats/rar5/reader.rb +342 -0
  329. data/lib/omnizip/formats/rar5/writer.rb +214 -0
  330. data/lib/omnizip/formats/seven_zip/coder_chain.rb +150 -0
  331. data/lib/omnizip/formats/seven_zip/constants.rb +126 -0
  332. data/lib/omnizip/formats/seven_zip/encoded_header.rb +114 -0
  333. data/lib/omnizip/formats/seven_zip/encrypted_header.rb +142 -0
  334. data/lib/omnizip/formats/seven_zip/file_collector.rb +144 -0
  335. data/lib/omnizip/formats/seven_zip/header.rb +106 -0
  336. data/lib/omnizip/formats/seven_zip/header_encryptor.rb +134 -0
  337. data/lib/omnizip/formats/seven_zip/header_writer.rb +466 -0
  338. data/lib/omnizip/formats/seven_zip/models/coder_info.rb +30 -0
  339. data/lib/omnizip/formats/seven_zip/models/file_entry.rb +58 -0
  340. data/lib/omnizip/formats/seven_zip/models/folder.rb +69 -0
  341. data/lib/omnizip/formats/seven_zip/models/stream_info.rb +42 -0
  342. data/lib/omnizip/formats/seven_zip/parser.rb +660 -0
  343. data/lib/omnizip/formats/seven_zip/reader.rb +458 -0
  344. data/lib/omnizip/formats/seven_zip/split_archive_reader.rb +632 -0
  345. data/lib/omnizip/formats/seven_zip/split_archive_writer.rb +315 -0
  346. data/lib/omnizip/formats/seven_zip/stream_compressor.rb +151 -0
  347. data/lib/omnizip/formats/seven_zip/stream_decompressor.rb +162 -0
  348. data/lib/omnizip/formats/seven_zip/writer.rb +740 -0
  349. data/lib/omnizip/formats/seven_zip.rb +93 -0
  350. data/lib/omnizip/formats/tar/constants.rb +73 -0
  351. data/lib/omnizip/formats/tar/entry.rb +94 -0
  352. data/lib/omnizip/formats/tar/header.rb +168 -0
  353. data/lib/omnizip/formats/tar/reader.rb +121 -0
  354. data/lib/omnizip/formats/tar/writer.rb +216 -0
  355. data/lib/omnizip/formats/tar.rb +84 -0
  356. data/lib/omnizip/formats/xz/reader.rb +116 -0
  357. data/lib/omnizip/formats/xz.rb +237 -0
  358. data/lib/omnizip/formats/xz_impl/block_decoder.rb +754 -0
  359. data/lib/omnizip/formats/xz_impl/block_encoder.rb +306 -0
  360. data/lib/omnizip/formats/xz_impl/block_header.rb +210 -0
  361. data/lib/omnizip/formats/xz_impl/block_header_parser.rb +186 -0
  362. data/lib/omnizip/formats/xz_impl/constants.rb +49 -0
  363. data/lib/omnizip/formats/xz_impl/index_decoder.rb +174 -0
  364. data/lib/omnizip/formats/xz_impl/index_encoder.rb +122 -0
  365. data/lib/omnizip/formats/xz_impl/stream_decoder.rb +468 -0
  366. data/lib/omnizip/formats/xz_impl/stream_encoder.rb +99 -0
  367. data/lib/omnizip/formats/xz_impl/stream_footer.rb +81 -0
  368. data/lib/omnizip/formats/xz_impl/stream_footer_parser.rb +117 -0
  369. data/lib/omnizip/formats/xz_impl/stream_header.rb +55 -0
  370. data/lib/omnizip/formats/xz_impl/stream_header_parser.rb +108 -0
  371. data/lib/omnizip/formats/xz_impl/vli.rb +128 -0
  372. data/lib/omnizip/formats/xz_impl/writer.rb +421 -0
  373. data/lib/omnizip/formats/zip/central_directory_header.rb +195 -0
  374. data/lib/omnizip/formats/zip/constants.rb +69 -0
  375. data/lib/omnizip/formats/zip/end_of_central_directory.rb +133 -0
  376. data/lib/omnizip/formats/zip/local_file_header.rb +138 -0
  377. data/lib/omnizip/formats/zip/reader.rb +250 -0
  378. data/lib/omnizip/formats/zip/unix_extra_field.rb +153 -0
  379. data/lib/omnizip/formats/zip/writer.rb +375 -0
  380. data/lib/omnizip/formats/zip/zip64_end_of_central_directory.rb +104 -0
  381. data/lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb +66 -0
  382. data/lib/omnizip/formats/zip/zip64_extra_field.rb +114 -0
  383. data/lib/omnizip/formats/zip.rb +50 -0
  384. data/lib/omnizip/implementations/base/lzma2_decoder_base.rb +75 -0
  385. data/lib/omnizip/implementations/base/lzma2_encoder_base.rb +128 -0
  386. data/lib/omnizip/implementations/base/lzma_decoder_base.rb +83 -0
  387. data/lib/omnizip/implementations/base/lzma_encoder_base.rb +108 -0
  388. data/lib/omnizip/implementations/base/state_machine_base.rb +182 -0
  389. data/lib/omnizip/implementations/seven_zip/lzma/decoder.rb +421 -0
  390. data/lib/omnizip/implementations/seven_zip/lzma/encoder.rb +465 -0
  391. data/lib/omnizip/implementations/seven_zip/lzma/match_finder.rb +288 -0
  392. data/lib/omnizip/implementations/seven_zip/lzma/range_decoder.rb +200 -0
  393. data/lib/omnizip/implementations/seven_zip/lzma/range_encoder.rb +197 -0
  394. data/lib/omnizip/implementations/seven_zip/lzma/state_machine.rb +141 -0
  395. data/lib/omnizip/implementations/seven_zip/lzma2/encoder.rb +519 -0
  396. data/lib/omnizip/implementations/xz_utils/lzma2/decoder.rb +723 -0
  397. data/lib/omnizip/implementations/xz_utils/lzma2/encoder.rb +750 -0
  398. data/lib/omnizip/io/buffered_input.rb +146 -0
  399. data/lib/omnizip/io/buffered_output.rb +105 -0
  400. data/lib/omnizip/io/stream_manager.rb +115 -0
  401. data/lib/omnizip/link_handler/hard_link.rb +79 -0
  402. data/lib/omnizip/link_handler/symbolic_link.rb +74 -0
  403. data/lib/omnizip/link_handler.rb +124 -0
  404. data/lib/omnizip/metadata/archive_metadata.rb +114 -0
  405. data/lib/omnizip/metadata/entry_metadata.rb +146 -0
  406. data/lib/omnizip/metadata/metadata_editor.rb +171 -0
  407. data/lib/omnizip/metadata/metadata_registry.rb +64 -0
  408. data/lib/omnizip/metadata/metadata_validator.rb +99 -0
  409. data/lib/omnizip/metadata.rb +57 -0
  410. data/lib/omnizip/models/.keep +0 -0
  411. data/lib/omnizip/models/algorithm_metadata.rb +73 -0
  412. data/lib/omnizip/models/compression_options.rb +71 -0
  413. data/lib/omnizip/models/conversion_options.rb +87 -0
  414. data/lib/omnizip/models/conversion_result.rb +135 -0
  415. data/lib/omnizip/models/eta_result.rb +46 -0
  416. data/lib/omnizip/models/extraction_rule.rb +115 -0
  417. data/lib/omnizip/models/filter_chain.rb +144 -0
  418. data/lib/omnizip/models/filter_config.rb +183 -0
  419. data/lib/omnizip/models/match_result.rb +124 -0
  420. data/lib/omnizip/models/optimization_suggestion.rb +91 -0
  421. data/lib/omnizip/models/parallel_options.rb +104 -0
  422. data/lib/omnizip/models/performance_result.rb +79 -0
  423. data/lib/omnizip/models/profile_report.rb +82 -0
  424. data/lib/omnizip/models/progress_options.rb +38 -0
  425. data/lib/omnizip/models/split_options.rb +116 -0
  426. data/lib/omnizip/optimization_registry.rb +81 -0
  427. data/lib/omnizip/parallel/job_queue.rb +209 -0
  428. data/lib/omnizip/parallel/job_scheduler.rb +203 -0
  429. data/lib/omnizip/parallel/parallel_compressor.rb +347 -0
  430. data/lib/omnizip/parallel/parallel_extractor.rb +329 -0
  431. data/lib/omnizip/parallel/worker_pool.rb +223 -0
  432. data/lib/omnizip/parallel.rb +149 -0
  433. data/lib/omnizip/parity/chunked_block_processor.rb +196 -0
  434. data/lib/omnizip/parity/galois16.rb +145 -0
  435. data/lib/omnizip/parity/models/creator_packet.rb +73 -0
  436. data/lib/omnizip/parity/models/file_description_packet.rb +133 -0
  437. data/lib/omnizip/parity/models/ifsc_packet.rb +123 -0
  438. data/lib/omnizip/parity/models/main_packet.rb +128 -0
  439. data/lib/omnizip/parity/models/packet.rb +156 -0
  440. data/lib/omnizip/parity/models/packet_registry.rb +109 -0
  441. data/lib/omnizip/parity/models/recovery_slice_packet.rb +78 -0
  442. data/lib/omnizip/parity/par2_creator.rb +531 -0
  443. data/lib/omnizip/parity/par2_repairer.rb +407 -0
  444. data/lib/omnizip/parity/par2_verifier.rb +364 -0
  445. data/lib/omnizip/parity/par2cmdline_algorithm.rb +110 -0
  446. data/lib/omnizip/parity/par2cmdline_coefficients.rb +78 -0
  447. data/lib/omnizip/parity/reed_solomon_decoder.rb +266 -0
  448. data/lib/omnizip/parity/reed_solomon_encoder.rb +111 -0
  449. data/lib/omnizip/parity/reed_solomon_matrix.rb +342 -0
  450. data/lib/omnizip/parity.rb +186 -0
  451. data/lib/omnizip/password/encryption_registry.rb +65 -0
  452. data/lib/omnizip/password/encryption_strategy.rb +96 -0
  453. data/lib/omnizip/password/password_validator.rb +129 -0
  454. data/lib/omnizip/password/winzip_aes_strategy.rb +192 -0
  455. data/lib/omnizip/password/zip_crypto_strategy.rb +141 -0
  456. data/lib/omnizip/password.rb +87 -0
  457. data/lib/omnizip/pipe/stream_compressor.rb +124 -0
  458. data/lib/omnizip/pipe/stream_decompressor.rb +174 -0
  459. data/lib/omnizip/pipe.rb +121 -0
  460. data/lib/omnizip/platform/ntfs_streams.rb +201 -0
  461. data/lib/omnizip/platform.rb +189 -0
  462. data/lib/omnizip/profile/archive_profile.rb +39 -0
  463. data/lib/omnizip/profile/balanced_profile.rb +33 -0
  464. data/lib/omnizip/profile/binary_profile.rb +36 -0
  465. data/lib/omnizip/profile/compression_profile.rb +158 -0
  466. data/lib/omnizip/profile/custom_profile.rb +157 -0
  467. data/lib/omnizip/profile/fast_profile.rb +33 -0
  468. data/lib/omnizip/profile/maximum_profile.rb +33 -0
  469. data/lib/omnizip/profile/profile_detector.rb +110 -0
  470. data/lib/omnizip/profile/profile_registry.rb +161 -0
  471. data/lib/omnizip/profile/text_profile.rb +36 -0
  472. data/lib/omnizip/profile.rb +190 -0
  473. data/lib/omnizip/profiler/memory_profiler.rb +66 -0
  474. data/lib/omnizip/profiler/method_profiler.rb +49 -0
  475. data/lib/omnizip/profiler/report_generator.rb +169 -0
  476. data/lib/omnizip/profiler.rb +204 -0
  477. data/lib/omnizip/progress/callback_reporter.rb +36 -0
  478. data/lib/omnizip/progress/console_reporter.rb +62 -0
  479. data/lib/omnizip/progress/log_reporter.rb +91 -0
  480. data/lib/omnizip/progress/operation_progress.rb +118 -0
  481. data/lib/omnizip/progress/progress_bar.rb +156 -0
  482. data/lib/omnizip/progress/progress_reporter.rb +40 -0
  483. data/lib/omnizip/progress/progress_tracker.rb +190 -0
  484. data/lib/omnizip/progress/silent_reporter.rb +24 -0
  485. data/lib/omnizip/progress.rb +127 -0
  486. data/lib/omnizip/rubyzip_compat.rb +63 -0
  487. data/lib/omnizip/temp/safe_extract.rb +168 -0
  488. data/lib/omnizip/temp/temp_file.rb +124 -0
  489. data/lib/omnizip/temp/temp_file_pool.rb +109 -0
  490. data/lib/omnizip/temp.rb +181 -0
  491. data/lib/omnizip/version.rb +5 -0
  492. data/lib/omnizip/zip/entry.rb +156 -0
  493. data/lib/omnizip/zip/file.rb +485 -0
  494. data/lib/omnizip/zip/input_stream.rb +273 -0
  495. data/lib/omnizip/zip/output_stream.rb +324 -0
  496. data/lib/omnizip.rb +156 -0
  497. data/readme-docs/advanced-features.adoc +515 -0
  498. data/readme-docs/api-usage.adoc +444 -0
  499. data/readme-docs/architecture.adoc +449 -0
  500. data/readme-docs/archive-formats.adoc +479 -0
  501. data/readme-docs/cli-usage.adoc +222 -0
  502. data/readme-docs/compression-algorithms.adoc +442 -0
  503. data/readme-docs/compression-profiles.adoc +247 -0
  504. data/readme-docs/encryption-checksums.adoc +328 -0
  505. data/readme-docs/format-converter.adoc +325 -0
  506. data/readme-docs/installation.adoc +228 -0
  507. data/readme-docs/par2-archives.adoc +608 -0
  508. data/readme-docs/performance-profiler.adoc +389 -0
  509. data/readme-docs/preprocessing-filters.adoc +280 -0
  510. data/xz-file-format-1.2.1.txt +1174 -0
  511. metadata +617 -0
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,754 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2026-01-31 01:50:26 UTC using RuboCop version 1.81.6.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Configuration parameters: Severity.
11
+ Gemspec/RequiredRubyVersion:
12
+ Exclude:
13
+ - 'omnizip.gemspec'
14
+
15
+ # Offense count: 13
16
+ # This cop supports safe autocorrection (--autocorrect).
17
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
18
+ # SupportedStyles: with_first_argument, with_fixed_indentation
19
+ Layout/ArgumentAlignment:
20
+ Exclude:
21
+ - 'compare_bypass_checksum.rb'
22
+ - 'extract_dict_bytes.rb'
23
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
24
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
25
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
26
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
27
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
28
+ - 'tmp_trace_chunk1.rb'
29
+ - 'trace_control_a0.rb'
30
+
31
+ # Offense count: 4
32
+ # This cop supports safe autocorrection (--autocorrect).
33
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
34
+ # SupportedStyles: with_first_element, with_fixed_indentation
35
+ Layout/ArrayAlignment:
36
+ Exclude:
37
+ - 'compare_bypass_checksum.rb'
38
+ - 'compare_clean.rb'
39
+
40
+ # Offense count: 32
41
+ # This cop supports safe autocorrection (--autocorrect).
42
+ # Configuration parameters: EnforcedStyleAlignWith, Severity.
43
+ # SupportedStylesAlignWith: start_of_line, begin
44
+ Layout/BeginEndAlignment:
45
+ Exclude:
46
+ - 'extract_dict_bytes.rb'
47
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
48
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
49
+ - 'trace_finish_state_reset.rb'
50
+ - 'trace_init_bytes.rb'
51
+ - 'trace_init_bytes2.rb'
52
+ - 'trace_init_bytes3.rb'
53
+
54
+ # Offense count: 25
55
+ # This cop supports safe autocorrection (--autocorrect).
56
+ # Configuration parameters: EnforcedStyleAlignWith.
57
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
58
+ Layout/BlockAlignment:
59
+ Exclude:
60
+ - 'analyze_chunks.rb'
61
+ - 'analyze_xz_structure.rb'
62
+ - 'compare_outputs.rb'
63
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
64
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
65
+ - 'scripts/bypass_checksum_compare.rb'
66
+ - 'scripts/compare_xz_decode.rb'
67
+ - 'scripts/debug_lzma2_chunk_type.rb'
68
+ - 'scripts/trace_operations_250_256.rb'
69
+ - 'trace_decode_output.rb'
70
+ - 'trace_init_bytes3.rb'
71
+ - 'trace_input_pos.rb'
72
+ - 'trace_stream_content2.rb'
73
+ - 'trace_xz_bytes.rb'
74
+
75
+ # Offense count: 9
76
+ # This cop supports safe autocorrection (--autocorrect).
77
+ Layout/BlockEndNewline:
78
+ Exclude:
79
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
80
+ - 'trace_init_bytes3.rb'
81
+ - 'trace_input_pos.rb'
82
+ - 'trace_reset_bytes.rb'
83
+ - 'trace_stream_content2.rb'
84
+
85
+ # Offense count: 2
86
+ # This cop supports safe autocorrection (--autocorrect).
87
+ Layout/ClosingParenthesisIndentation:
88
+ Exclude:
89
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
90
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
91
+
92
+ # Offense count: 2
93
+ # This cop supports safe autocorrection (--autocorrect).
94
+ # Configuration parameters: AllowForAlignment.
95
+ Layout/CommentIndentation:
96
+ Exclude:
97
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
98
+
99
+ # Offense count: 9
100
+ # This cop supports safe autocorrection (--autocorrect).
101
+ Layout/ElseAlignment:
102
+ Exclude:
103
+ - 'compare_bypass_checksum.rb'
104
+ - 'extract_dict_bytes.rb'
105
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
106
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
107
+
108
+ # Offense count: 1
109
+ # This cop supports safe autocorrection (--autocorrect).
110
+ Layout/EmptyLineAfterGuardClause:
111
+ Exclude:
112
+ - 'lib/omnizip/formats/xz_impl/index_decoder.rb'
113
+
114
+ # Offense count: 1
115
+ # This cop supports safe autocorrection (--autocorrect).
116
+ Layout/EmptyLinesAroundMethodBody:
117
+ Exclude:
118
+ - 'trace_stream_content2.rb'
119
+
120
+ # Offense count: 7
121
+ # This cop supports safe autocorrection (--autocorrect).
122
+ # Configuration parameters: EnforcedStyleAlignWith, Severity.
123
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
124
+ Layout/EndAlignment:
125
+ Exclude:
126
+ - 'compare_bypass_checksum.rb'
127
+ - 'extract_dict_bytes.rb'
128
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
129
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
130
+
131
+ # Offense count: 6
132
+ # This cop supports safe autocorrection (--autocorrect).
133
+ # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
134
+ Layout/ExtraSpacing:
135
+ Exclude:
136
+ - 'lib/omnizip/algorithms/lzma/range_decoder.rb'
137
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
138
+ - 'tmp_trace_chunk1.rb'
139
+ - 'trace_chunk1_comprehensive.rb'
140
+ - 'trace_reset_bytes.rb'
141
+
142
+ # Offense count: 2
143
+ # This cop supports safe autocorrection (--autocorrect).
144
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
145
+ # SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
146
+ Layout/FirstArgumentIndentation:
147
+ Exclude:
148
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
149
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
150
+
151
+ # Offense count: 2
152
+ # This cop supports safe autocorrection (--autocorrect).
153
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
154
+ # SupportedStyles: special_inside_parentheses, consistent, align_brackets
155
+ Layout/FirstArrayElementIndentation:
156
+ Exclude:
157
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
158
+
159
+ # Offense count: 4
160
+ # This cop supports safe autocorrection (--autocorrect).
161
+ # Configuration parameters: EnforcedStyle.
162
+ # SupportedStyles: normal, indented_internal_methods
163
+ Layout/IndentationConsistency:
164
+ Exclude:
165
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
166
+
167
+ # Offense count: 76
168
+ # This cop supports safe autocorrection (--autocorrect).
169
+ # Configuration parameters: Width, AllowedPatterns.
170
+ Layout/IndentationWidth:
171
+ Exclude:
172
+ - 'compare_bypass_checksum.rb'
173
+ - 'extract_dict_bytes.rb'
174
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
175
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
176
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
177
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
178
+ - 'trace_finish_state_reset.rb'
179
+ - 'trace_init_bytes.rb'
180
+ - 'trace_init_bytes2.rb'
181
+ - 'trace_init_bytes3.rb'
182
+ - 'trace_input_pos.rb'
183
+ - 'trace_reset_bytes.rb'
184
+ - 'trace_stream_content2.rb'
185
+
186
+ # Offense count: 1
187
+ # This cop supports safe autocorrection (--autocorrect).
188
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
189
+ # SupportedStyles: aligned, indented
190
+ Layout/LineEndStringConcatenationIndentation:
191
+ Exclude:
192
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
193
+
194
+ # Offense count: 2683
195
+ # This cop supports safe autocorrection (--autocorrect).
196
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
197
+ # URISchemes: http, https
198
+ Layout/LineLength:
199
+ Enabled: false
200
+
201
+ # Offense count: 1
202
+ # This cop supports safe autocorrection (--autocorrect).
203
+ # Configuration parameters: EnforcedStyle.
204
+ # SupportedStyles: symmetrical, new_line, same_line
205
+ Layout/MultilineArrayBraceLayout:
206
+ Exclude:
207
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
208
+
209
+ # Offense count: 2
210
+ # This cop supports safe autocorrection (--autocorrect).
211
+ # Configuration parameters: EnforcedStyle.
212
+ # SupportedStyles: symmetrical, new_line, same_line
213
+ Layout/MultilineMethodCallBraceLayout:
214
+ Exclude:
215
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
216
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
217
+
218
+ # Offense count: 39
219
+ # This cop supports safe autocorrection (--autocorrect).
220
+ Layout/RescueEnsureAlignment:
221
+ Exclude:
222
+ - 'extract_dict_bytes.rb'
223
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
224
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
225
+ - 'trace_finish_state_reset.rb'
226
+ - 'trace_init_bytes.rb'
227
+ - 'trace_init_bytes2.rb'
228
+ - 'trace_init_bytes3.rb'
229
+
230
+ # Offense count: 4
231
+ # This cop supports safe autocorrection (--autocorrect).
232
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator, EnforcedStyleForRationalLiterals.
233
+ # SupportedStylesForExponentOperator: space, no_space
234
+ # SupportedStylesForRationalLiterals: space, no_space
235
+ Layout/SpaceAroundOperators:
236
+ Exclude:
237
+ - 'tmp_trace_chunk1.rb'
238
+
239
+ # Offense count: 18
240
+ # This cop supports safe autocorrection (--autocorrect).
241
+ # Configuration parameters: AllowInHeredoc.
242
+ Layout/TrailingWhitespace:
243
+ Exclude:
244
+ - 'compare_bypass_checksum.rb'
245
+ - 'compare_clean.rb'
246
+ - 'extract_dict_bytes.rb'
247
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
248
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
249
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
250
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
251
+ - 'tmp_trace_chunk1.rb'
252
+ - 'trace_control_a0.rb'
253
+ - 'trace_stream_content2.rb'
254
+
255
+ # Offense count: 1
256
+ # This cop supports safe autocorrection (--autocorrect).
257
+ Lint/AmbiguousOperatorPrecedence:
258
+ Exclude:
259
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
260
+
261
+ # Offense count: 1
262
+ Lint/BinaryOperatorWithIdenticalOperands:
263
+ Exclude:
264
+ - 'scripts/comprehensive_decoder_comparison.rb'
265
+
266
+ # Offense count: 5
267
+ # Configuration parameters: AllowedMethods.
268
+ # AllowedMethods: enums
269
+ Lint/ConstantDefinitionInBlock:
270
+ Exclude:
271
+ - 'spec/omnizip/extraction_spec.rb'
272
+ - 'spec/omnizip/filter_registry_spec.rb'
273
+ - 'spec/omnizip/formats/xz/official_test_suite_spec.rb'
274
+ - 'spec/omnizip/algorithms/lzma/optimal_encoder_spec.rb'
275
+ - 'spec/omnizip/formats/rar/libarchive_rar_reference_spec.rb'
276
+ - 'spec/omnizip/formats/rar/official_compatibility_spec.rb'
277
+ - 'spec/omnizip/formats/xz/xz_reference_spec.rb'
278
+ - 'spec/omnizip/seven_zip_tool_compatibility_spec.rb'
279
+ - 'spec/omnizip/xz_tool_compatibility_spec.rb'
280
+
281
+ # Offense count: 35
282
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
283
+ Lint/DuplicateBranch:
284
+ Enabled: false
285
+
286
+ # Offense count: 6
287
+ Lint/DuplicateMethods:
288
+ Exclude:
289
+ - 'lib/omnizip/algorithms/lzma/xz_range_encoder_exact.rb'
290
+ - 'lib/omnizip/formats/xz.rb'
291
+ - 'lib/omnizip/implementations/xz_utils/lzma2/encoder.rb'
292
+ - 'lib/omnizip/models/filter_config.rb'
293
+ - 'lib/omnizip/parity/par2_creator.rb'
294
+ - 'lib/omnizip/zip/file.rb'
295
+ - 'scripts/analyze_normalize_operations.rb'
296
+
297
+ # Offense count: 4
298
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
299
+ Lint/EmptyBlock:
300
+ Exclude:
301
+ - 'lib/omnizip/parallel.rb'
302
+ - 'spec/omnizip/buffer_spec.rb'
303
+ - 'spec/omnizip/formats/rar/rar5/multi_volume/volume_writer_spec.rb'
304
+
305
+ # Offense count: 1
306
+ # Configuration parameters: AllowComments.
307
+ Lint/EmptyFile:
308
+ Exclude:
309
+ - 'test/verify_xz_encoder.rb'
310
+
311
+ # Offense count: 10
312
+ Lint/IneffectiveAccessModifier:
313
+ Exclude:
314
+ - 'lib/omnizip/algorithms/lzma2/properties.rb'
315
+ - 'lib/omnizip/checksums/crc_base.rb'
316
+ - 'lib/omnizip/formats/cpio/entry.rb'
317
+ - 'lib/omnizip/formats/rar/external_writer.rb'
318
+ - 'lib/omnizip/formats/xz_impl/block_header.rb'
319
+ - 'lib/omnizip/formats/xz_impl/writer.rb'
320
+
321
+ # Offense count: 1
322
+ # Configuration parameters: MaximumRangeSize.
323
+ Lint/MissingCopEnableDirective:
324
+ Exclude:
325
+ - 'lib/omnizip/algorithms/lzma2/xz_lzma2_encoder.rb'
326
+ - 'lib/omnizip/implementations/xz_utils/lzma2/encoder.rb'
327
+
328
+ # Offense count: 2
329
+ # Configuration parameters: AllowedParentClasses.
330
+ Lint/MissingSuper:
331
+ Exclude:
332
+ - 'lib/omnizip/formats/rar/compression/ppmd/decoder.rb'
333
+ - 'lib/omnizip/formats/rar/compression/ppmd/encoder.rb'
334
+
335
+ # Offense count: 1
336
+ # This cop supports safe autocorrection (--autocorrect).
337
+ Lint/RedundantStringCoercion:
338
+ Exclude:
339
+ - 'test_loading.rb'
340
+
341
+ # Offense count: 2
342
+ Lint/StructNewOverride:
343
+ Exclude:
344
+ - 'lib/omnizip/parallel/job_queue.rb'
345
+ - 'lib/omnizip/parity/par2_creator.rb'
346
+
347
+ # Offense count: 2
348
+ Lint/ShadowedException:
349
+ Exclude:
350
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
351
+
352
+ # Offense count: 3
353
+ # Configuration parameters: AllowedPatterns.
354
+ # AllowedPatterns: (?-mix:(exactly|at_least|at_most)\(\d+\)\.times)
355
+ Lint/UnreachableLoop:
356
+ Exclude:
357
+ - 'extract_dict_bytes.rb'
358
+ - 'lib/omnizip/algorithms/lzma/range_decoder.rb'
359
+ - 'scripts/trace_byte_231.rb'
360
+ - 'scripts/trace_capture_state.rb'
361
+
362
+ # Offense count: 3
363
+ # This cop supports safe autocorrection (--autocorrect).
364
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
365
+ # NotImplementedExceptions: NotImplementedError
366
+ Lint/UnusedMethodArgument:
367
+ Exclude:
368
+ - 'lib/omnizip/filters/registry.rb'
369
+ - 'lib/omnizip/formats/iso/writer.rb'
370
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
371
+
372
+ # Offense count: 16
373
+ # This cop supports safe autocorrection (--autocorrect).
374
+ Lint/UselessAssignment:
375
+ Exclude:
376
+ - 'compare_bypass_checksum.rb'
377
+ - 'extract_dict_bytes.rb'
378
+ - 'test_chunk1_direct.rb'
379
+ - 'tmp_capture_output.rb'
380
+ - 'trace_chunk1_comprehensive.rb'
381
+ - 'trace_reset_bytes.rb'
382
+
383
+ # Offense count: 4
384
+ Lint/UselessConstantScoping:
385
+ Exclude:
386
+ - 'lib/omnizip/algorithms/lzma/optimal_encoder.rb'
387
+
388
+ # Offense count: 642
389
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
390
+ Metrics/AbcSize:
391
+ Enabled: false
392
+
393
+ # Offense count: 73
394
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
395
+ # AllowedMethods: refine
396
+ Metrics/BlockLength:
397
+ Max: 172
398
+ Exclude:
399
+ - 'spec/**/*'
400
+ - 'test/**/*'
401
+ - 'benchmark/**/*'
402
+ - 'scripts/**/*'
403
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
404
+
405
+ # Offense count: 51
406
+ # Configuration parameters: CountBlocks, CountModifierForms.
407
+ Metrics/BlockNesting:
408
+ Max: 6
409
+
410
+ # Offense count: 282
411
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
412
+ Metrics/CyclomaticComplexity:
413
+ Enabled: false
414
+
415
+ # Offense count: 1058
416
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
417
+ Metrics/MethodLength:
418
+ Max: 325
419
+ Exclude:
420
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
421
+
422
+ # Offense count: 27
423
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
424
+ Metrics/ParameterLists:
425
+ Max: 20
426
+
427
+ # Offense count: 212
428
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
429
+ Metrics/PerceivedComplexity:
430
+ Enabled: false
431
+
432
+ # Offense count: 80
433
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
434
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
435
+ Naming/MethodParameterName:
436
+ Enabled: false
437
+
438
+ # Offense count: 36
439
+ # Configuration parameters: Mode, AllowedMethods, AllowedPatterns, AllowBangMethods, WaywardPredicates.
440
+ # AllowedMethods: call
441
+ # WaywardPredicates: nonzero?
442
+ Naming/PredicateMethod:
443
+ Enabled: false
444
+
445
+ # Offense count: 2
446
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros, UseSorbetSigs.
447
+ # NamePrefix: is_, has_, have_, does_
448
+ # ForbiddenPrefixes: is_, has_, have_, does_
449
+ # AllowedMethods: is_a?
450
+ # MethodDefinitionMacros: define_method, define_singleton_method
451
+ Naming/PredicatePrefix:
452
+ Exclude:
453
+ - 'spec/**/*'
454
+ - 'lib/omnizip/algorithms/lzma/sdk_state_machine.rb'
455
+ - 'lib/omnizip/implementations/seven_zip/lzma/state_machine.rb'
456
+ - 'scripts/compare_is_match_states.rb'
457
+
458
+ # Offense count: 369
459
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
460
+ # SupportedStyles: snake_case, normalcase, non_integer
461
+ # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
462
+ Naming/VariableNumber:
463
+ Enabled: false
464
+
465
+ # Offense count: 16
466
+ # Configuration parameters: MinSize.
467
+ Performance/CollectionLiteralInLoop:
468
+ Exclude:
469
+ - 'lib/omnizip/commands/archive_create_command.rb'
470
+ - 'lib/omnizip/formats/iso/directory_builder.rb'
471
+ - 'lib/omnizip/formats/iso/writer.rb'
472
+ - 'lib/omnizip/formats/seven_zip/header_writer.rb'
473
+ - 'lib/omnizip/parity/models/file_description_packet.rb'
474
+ - 'lib/omnizip/parity/par2_repairer.rb'
475
+ - 'scan_for_lzma2.rb'
476
+ - 'scripts/compare_is_match_states.rb'
477
+ - 'scripts/debug_chunk_details.rb'
478
+ - 'scripts/debug_lzma2_props.rb'
479
+ - 'scripts/track_byte_reads.rb'
480
+ - 'spec/omnizip/filters/bcj_arch_spec.rb'
481
+
482
+ # Offense count: 2
483
+ Performance/MapMethodChain:
484
+ Exclude:
485
+ - 'lib/omnizip/commands/archive_create_command.rb'
486
+ - 'trace_instrumented.rb'
487
+
488
+ # Offense count: 2
489
+ # This cop supports unsafe autocorrection (--autocorrect-all).
490
+ Performance/StringInclude:
491
+ Exclude:
492
+ - 'diagnose_loading.rb'
493
+ - 'test_without_bundler.rb'
494
+
495
+ # Offense count: 10
496
+ Security/Open:
497
+ Exclude:
498
+ - 'lib/omnizip/formats/cpio.rb'
499
+ - 'lib/omnizip/formats/iso.rb'
500
+ - 'lib/omnizip/formats/rar.rb'
501
+ - 'lib/omnizip/zip/file.rb'
502
+
503
+ # Offense count: 14
504
+ # This cop supports safe autocorrection (--autocorrect).
505
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
506
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
507
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
508
+ # FunctionalMethods: let, let!, subject, watch
509
+ # AllowedMethods: lambda, proc, it
510
+ Style/BlockDelimiters:
511
+ Exclude:
512
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
513
+ - 'trace_init_bytes3.rb'
514
+ - 'trace_input_pos.rb'
515
+ - 'trace_reset_bytes.rb'
516
+ - 'trace_stream_content2.rb'
517
+
518
+ # Ruby 3.0 doesn't support anonymous block forwarding (&) syntax
519
+ # These files use explicit &block for Ruby 3.0 compatibility
520
+ Naming/BlockForwarding:
521
+ Exclude:
522
+ - 'lib/omnizip/zip/file.rb'
523
+ - 'lib/omnizip/temp/safe_extract.rb'
524
+
525
+ Style/ArgumentsForwarding:
526
+ Exclude:
527
+ - 'lib/omnizip/zip/file.rb'
528
+ - 'lib/omnizip/temp/safe_extract.rb'
529
+
530
+ # Offense count: 2
531
+ # This cop supports unsafe autocorrection (--autocorrect-all).
532
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForClasses, EnforcedStyleForModules.
533
+ # SupportedStyles: nested, compact
534
+ # SupportedStylesForClasses: ~, nested, compact
535
+ # SupportedStylesForModules: ~, nested, compact
536
+ Style/ClassAndModuleChildren:
537
+ Exclude:
538
+ - 'trace_init_bytes3.rb'
539
+
540
+ # Offense count: 4
541
+ # This cop supports unsafe autocorrection (--autocorrect-all).
542
+ Style/ComparableBetween:
543
+ Exclude:
544
+ - 'debug_slot_decode.rb'
545
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
546
+ - 'trace_dict_put.rb'
547
+
548
+ # Offense count: 2
549
+ # This cop supports safe autocorrection (--autocorrect).
550
+ Style/ComparableClamp:
551
+ Exclude:
552
+ - 'lib/omnizip/algorithms/bzip2.rb'
553
+ - 'lib/omnizip/metadata/archive_metadata.rb'
554
+
555
+ # Offense count: 2
556
+ # This cop supports safe autocorrection (--autocorrect).
557
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
558
+ # SupportedStyles: assign_to_condition, assign_inside_condition
559
+ Style/ConditionalAssignment:
560
+ Exclude:
561
+ - 'compare_bypass_checksum.rb'
562
+ - 'extract_dict_bytes.rb'
563
+
564
+ # Offense count: 5
565
+ # This cop supports safe autocorrection (--autocorrect).
566
+ # Configuration parameters: EnforcedStyle, AllowComments.
567
+ # SupportedStyles: empty, nil, both
568
+ Style/EmptyElse:
569
+ Exclude:
570
+ - 'lib/omnizip/algorithms/lzma/sdk_match_finder.rb'
571
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
572
+ - 'lib/omnizip/algorithms/ppmd7/encoder.rb'
573
+ - 'lib/omnizip/formats/iso/volume_descriptor.rb'
574
+ - 'scripts/debug_3delta2.rb'
575
+ - 'trace_stream_reads.rb'
576
+
577
+ # Offense count: 1
578
+ # This cop supports safe autocorrection (--autocorrect).
579
+ # Configuration parameters: AllowedVars, DefaultToNil.
580
+ Style/FetchEnvVar:
581
+ Exclude:
582
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
583
+
584
+ # Offense count: 722
585
+ # This cop supports safe autocorrection (--autocorrect).
586
+ # Configuration parameters: MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
587
+ # SupportedStyles: annotated, template, unannotated
588
+ Style/FormatStringToken:
589
+ EnforcedStyle: unannotated
590
+
591
+ # Offense count: 4
592
+ # This cop supports unsafe autocorrection (--autocorrect-all).
593
+ Style/IdenticalConditionalBranches:
594
+ Exclude:
595
+ - 'analyze_control_bytes.rb'
596
+ - 'lib/omnizip/formats/xz_impl/block_decoder.rb'
597
+
598
+ # Offense count: 1
599
+ # This cop supports safe autocorrection (--autocorrect).
600
+ # Configuration parameters: AllowIfModifier.
601
+ Style/IfInsideElse:
602
+ Exclude:
603
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
604
+
605
+ # Offense count: 27
606
+ Style/MixinUsage:
607
+ Enabled: false
608
+
609
+ # Offense count: 1
610
+ # This cop supports safe autocorrection (--autocorrect).
611
+ Style/MultilineIfModifier:
612
+ Exclude:
613
+ - 'tmp_trace_chunk1.rb'
614
+
615
+ # Offense count: 1
616
+ # This cop supports safe autocorrection (--autocorrect).
617
+ Style/MultilineTernaryOperator:
618
+ Exclude:
619
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
620
+
621
+ # Offense count: 1
622
+ # This cop supports safe autocorrection (--autocorrect).
623
+ Style/NegatedIfElseCondition:
624
+ Exclude:
625
+ - 'trace_chunk1_comprehensive.rb'
626
+
627
+ # Offense count: 5
628
+ # This cop supports unsafe autocorrection (--autocorrect-all).
629
+ # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
630
+ # SupportedStyles: predicate, comparison
631
+ Style/NumericPredicate:
632
+ Exclude:
633
+ - 'spec/**/*'
634
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
635
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
636
+ - 'trace_chunk1_comprehensive.rb'
637
+
638
+ # Offense count: 2
639
+ # Configuration parameters: AllowedMethods.
640
+ # AllowedMethods: respond_to_missing?
641
+ Style/OptionalBooleanParameter:
642
+ Exclude:
643
+ - 'lib/omnizip/formats/rar/archive_verifier.rb'
644
+ - 'lib/omnizip/formats/seven_zip/writer.rb'
645
+
646
+ # Offense count: 1
647
+ # This cop supports safe autocorrection (--autocorrect).
648
+ Style/RedundantAssignment:
649
+ Exclude:
650
+ - 'trace_stream_content2.rb'
651
+
652
+ # Offense count: 2
653
+ # This cop supports safe autocorrection (--autocorrect).
654
+ Style/RedundantParentheses:
655
+ Exclude:
656
+ - 'lib/omnizip/algorithms/lzma/distance_coder.rb'
657
+
658
+ # Offense count: 15
659
+ # This cop supports safe autocorrection (--autocorrect).
660
+ Style/RescueModifier:
661
+ Exclude:
662
+ - 'extract_dict_bytes.rb'
663
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
664
+ - 'trace_finish_state_reset.rb'
665
+ - 'trace_init_bytes.rb'
666
+ - 'trace_init_bytes2.rb'
667
+ - 'trace_init_bytes3.rb'
668
+
669
+ # Offense count: 22
670
+ # This cop supports safe autocorrection (--autocorrect).
671
+ # Configuration parameters: EnforcedStyle.
672
+ # SupportedStyles: implicit, explicit
673
+ Style/RescueStandardError:
674
+ Exclude:
675
+ - 'debug_slot_decode.rb'
676
+ - 'diagnose_loading.rb'
677
+ - 'extract_dict_bytes.rb'
678
+ - 'lib/omnizip/algorithms/lzma/xz_utils_decoder.rb'
679
+ - 'test_exact2.rb'
680
+ - 'test_without_bundler.rb'
681
+ - 'trace_chunk1_comprehensive.rb'
682
+ - 'trace_control_a0.rb'
683
+ - 'trace_finish_state_reset.rb'
684
+ - 'trace_init_bytes.rb'
685
+ - 'trace_init_bytes2.rb'
686
+ - 'trace_init_bytes3.rb'
687
+ - 'trace_range_decoder.rb'
688
+
689
+ # Offense count: 1
690
+ # This cop supports unsafe autocorrection (--autocorrect-all).
691
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
692
+ # AllowedMethods: present?, blank?, presence, try, try!
693
+ Style/SafeNavigation:
694
+ Exclude:
695
+ - 'lib/omnizip/formats/xz_impl/stream_decoder.rb'
696
+
697
+ # Offense count: 1
698
+ # Configuration parameters: Max.
699
+ Style/SafeNavigationChainLength:
700
+ Exclude:
701
+ - 'trace_instrumented.rb'
702
+
703
+ # Offense count: 2
704
+ # This cop supports unsafe autocorrection (--autocorrect-all).
705
+ Style/SelectByRegexp:
706
+ Exclude:
707
+ - 'diagnose_loading.rb'
708
+ - 'test_without_bundler.rb'
709
+
710
+ # Offense count: 18
711
+ # This cop supports unsafe autocorrection (--autocorrect-all).
712
+ # Configuration parameters: Mode.
713
+ Style/StringConcatenation:
714
+ Exclude:
715
+ - 'lib/omnizip/formats/iso/writer.rb'
716
+ - 'scripts/analyze_corruption_pattern.rb'
717
+ - 'scripts/compare_outputs_detailed.rb'
718
+ - 'test_first_256.rb'
719
+ - 'test_loading.rb'
720
+ - 'tmp_check_compressed.rb'
721
+ - 'tmp_manual_trace.rb'
722
+ - 'trace_init_bytes3.rb'
723
+ - 'trace_input_pos.rb'
724
+ - 'trace_reset_bytes.rb'
725
+ - 'verify_compressed_data.rb'
726
+
727
+ # Offense count: 65
728
+ # This cop supports safe autocorrection (--autocorrect).
729
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
730
+ # SupportedStyles: single_quotes, double_quotes
731
+ Style/StringLiterals:
732
+ Enabled: false
733
+
734
+ # Offense count: 4
735
+ # This cop supports safe autocorrection (--autocorrect).
736
+ # Configuration parameters: EnforcedStyle.
737
+ # SupportedStyles: single_quotes, double_quotes
738
+ Style/StringLiteralsInInterpolation:
739
+ Exclude:
740
+ - 'lib/omnizip/algorithms/lzma2/decoder.rb'
741
+
742
+ # Offense count: 1
743
+ # This cop supports safe autocorrection (--autocorrect).
744
+ Style/SuperArguments:
745
+ Exclude:
746
+ - 'tmp_capture_output.rb'
747
+
748
+ # Offense count: 1
749
+ # This cop supports safe autocorrection (--autocorrect).
750
+ # Configuration parameters: EnforcedStyleForMultiline.
751
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
752
+ Style/TrailingCommaInArguments:
753
+ Exclude:
754
+ - 'trace_chunk1_comprehensive.rb'