omnizip 0.3.12 → 0.3.14

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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +6 -0
  3. data/lib/omnizip/algorithm.rb +36 -3
  4. data/lib/omnizip/algorithm_registry.rb +0 -2
  5. data/lib/omnizip/algorithms/bzip2/bwt.rb +0 -2
  6. data/lib/omnizip/algorithms/bzip2/decoder.rb +0 -2
  7. data/lib/omnizip/algorithms/bzip2/encoder.rb +0 -2
  8. data/lib/omnizip/algorithms/bzip2/huffman.rb +0 -2
  9. data/lib/omnizip/algorithms/bzip2/mtf.rb +0 -2
  10. data/lib/omnizip/algorithms/bzip2/rle.rb +0 -2
  11. data/lib/omnizip/algorithms/bzip2.rb +1 -5
  12. data/lib/omnizip/algorithms/deflate/constants.rb +0 -2
  13. data/lib/omnizip/algorithms/deflate/decoder.rb +0 -2
  14. data/lib/omnizip/algorithms/deflate/encoder.rb +0 -2
  15. data/lib/omnizip/algorithms/deflate.rb +1 -5
  16. data/lib/omnizip/algorithms/deflate64/constants.rb +0 -2
  17. data/lib/omnizip/algorithms/deflate64/decoder.rb +0 -2
  18. data/lib/omnizip/algorithms/deflate64/encoder.rb +0 -2
  19. data/lib/omnizip/algorithms/deflate64/huffman_coder.rb +0 -2
  20. data/lib/omnizip/algorithms/deflate64/lz77_encoder.rb +0 -2
  21. data/lib/omnizip/algorithms/deflate64.rb +2 -4
  22. data/lib/omnizip/algorithms/lzma/bit_model.rb +0 -2
  23. data/lib/omnizip/algorithms/lzma/constants.rb +0 -2
  24. data/lib/omnizip/algorithms/lzma/decoder.rb +0 -2
  25. data/lib/omnizip/algorithms/lzma/dictionary.rb +0 -2
  26. data/lib/omnizip/algorithms/lzma/distance_coder.rb +0 -2
  27. data/lib/omnizip/algorithms/lzma/encoder.rb +0 -2
  28. data/lib/omnizip/algorithms/lzma/length_coder.rb +0 -2
  29. data/lib/omnizip/algorithms/lzma/literal_decoder.rb +0 -2
  30. data/lib/omnizip/algorithms/lzma/literal_encoder.rb +0 -2
  31. data/lib/omnizip/algorithms/lzma/lzip_decoder.rb +0 -2
  32. data/lib/omnizip/algorithms/lzma/lzma_alone_decoder.rb +0 -2
  33. data/lib/omnizip/algorithms/lzma/lzma_state.rb +0 -2
  34. data/lib/omnizip/algorithms/lzma/match.rb +0 -2
  35. data/lib/omnizip/algorithms/lzma/match_finder.rb +0 -2
  36. data/lib/omnizip/algorithms/lzma/match_finder_config.rb +0 -2
  37. data/lib/omnizip/algorithms/lzma/match_finder_factory.rb +0 -2
  38. data/lib/omnizip/algorithms/lzma/optimal_encoder.rb +0 -2
  39. data/lib/omnizip/algorithms/lzma/probability_models.rb +0 -2
  40. data/lib/omnizip/algorithms/lzma/range_coder.rb +0 -2
  41. data/lib/omnizip/algorithms/lzma/range_decoder.rb +0 -2
  42. data/lib/omnizip/algorithms/lzma/range_encoder.rb +0 -2
  43. data/lib/omnizip/algorithms/lzma/state.rb +0 -2
  44. data/lib/omnizip/algorithms/lzma/xz_buffered_range_encoder.rb +0 -2
  45. data/lib/omnizip/algorithms/lzma/xz_encoder.rb +0 -2
  46. data/lib/omnizip/algorithms/lzma/xz_encoder_fast.rb +0 -2
  47. data/lib/omnizip/algorithms/lzma/xz_match_finder_adapter.rb +0 -2
  48. data/lib/omnizip/algorithms/lzma/xz_price_calculator.rb +0 -2
  49. data/lib/omnizip/algorithms/lzma/xz_probability_models.rb +0 -2
  50. data/lib/omnizip/algorithms/lzma/xz_range_encoder.rb +0 -2
  51. data/lib/omnizip/algorithms/lzma/xz_range_encoder_exact.rb +0 -2
  52. data/lib/omnizip/algorithms/lzma/xz_state.rb +0 -2
  53. data/lib/omnizip/algorithms/lzma/xz_utils_decoder.rb +0 -2
  54. data/lib/omnizip/algorithms/lzma.rb +1 -3
  55. data/lib/omnizip/algorithms/lzma2/chunk_manager.rb +0 -2
  56. data/lib/omnizip/algorithms/lzma2/constants.rb +0 -2
  57. data/lib/omnizip/algorithms/lzma2/encoder.rb +0 -2
  58. data/lib/omnizip/algorithms/lzma2/lzma2_chunk.rb +0 -2
  59. data/lib/omnizip/algorithms/lzma2/properties.rb +0 -2
  60. data/lib/omnizip/algorithms/lzma2/simple_lzma2_encoder.rb +0 -2
  61. data/lib/omnizip/algorithms/lzma2/xz_encoder_adapter.rb +0 -2
  62. data/lib/omnizip/algorithms/lzma2.rb +4 -14
  63. data/lib/omnizip/algorithms/ppmd7/constants.rb +0 -2
  64. data/lib/omnizip/algorithms/ppmd7/context.rb +0 -2
  65. data/lib/omnizip/algorithms/ppmd7/decoder.rb +0 -2
  66. data/lib/omnizip/algorithms/ppmd7/encoder.rb +0 -2
  67. data/lib/omnizip/algorithms/ppmd7/model.rb +0 -2
  68. data/lib/omnizip/algorithms/ppmd7/symbol_state.rb +0 -2
  69. data/lib/omnizip/algorithms/ppmd7.rb +0 -2
  70. data/lib/omnizip/algorithms/ppmd8/constants.rb +0 -2
  71. data/lib/omnizip/algorithms/ppmd8/context.rb +0 -2
  72. data/lib/omnizip/algorithms/ppmd8/decoder.rb +0 -2
  73. data/lib/omnizip/algorithms/ppmd8/encoder.rb +0 -2
  74. data/lib/omnizip/algorithms/ppmd8/model.rb +0 -2
  75. data/lib/omnizip/algorithms/ppmd8/restoration_method.rb +0 -2
  76. data/lib/omnizip/algorithms/ppmd8.rb +0 -2
  77. data/lib/omnizip/algorithms/ppmd_base.rb +0 -2
  78. data/lib/omnizip/algorithms/registration.rb +0 -2
  79. data/lib/omnizip/algorithms/sevenzip_lzma2.rb +0 -2
  80. data/lib/omnizip/algorithms/xz_lzma2.rb +0 -2
  81. data/lib/omnizip/algorithms/zstandard/constants.rb +0 -2
  82. data/lib/omnizip/algorithms/zstandard/decoder.rb +0 -2
  83. data/lib/omnizip/algorithms/zstandard/encoder.rb +0 -2
  84. data/lib/omnizip/algorithms/zstandard/frame/block.rb +0 -2
  85. data/lib/omnizip/algorithms/zstandard/frame/header.rb +0 -2
  86. data/lib/omnizip/algorithms/zstandard/frame.rb +0 -2
  87. data/lib/omnizip/algorithms/zstandard/fse/bitstream.rb +0 -2
  88. data/lib/omnizip/algorithms/zstandard/fse/encoder.rb +0 -2
  89. data/lib/omnizip/algorithms/zstandard/fse/table.rb +0 -2
  90. data/lib/omnizip/algorithms/zstandard/fse.rb +0 -2
  91. data/lib/omnizip/algorithms/zstandard/huffman.rb +0 -2
  92. data/lib/omnizip/algorithms/zstandard/huffman_encoder.rb +0 -2
  93. data/lib/omnizip/algorithms/zstandard/literals.rb +0 -2
  94. data/lib/omnizip/algorithms/zstandard/literals_encoder.rb +0 -2
  95. data/lib/omnizip/algorithms/zstandard/sequences.rb +0 -2
  96. data/lib/omnizip/algorithms/zstandard.rb +1 -5
  97. data/lib/omnizip/algorithms.rb +14 -3
  98. data/lib/omnizip/archive_handler.rb +0 -2
  99. data/lib/omnizip/archive_handlers/tar_handler.rb +0 -2
  100. data/lib/omnizip/archive_handlers/zip_handler.rb +0 -2
  101. data/lib/omnizip/archive_handlers.rb +0 -2
  102. data/lib/omnizip/buffer/memory_archive.rb +0 -2
  103. data/lib/omnizip/buffer/memory_extractor.rb +0 -2
  104. data/lib/omnizip/buffer.rb +0 -2
  105. data/lib/omnizip/checksum_registry.rb +0 -2
  106. data/lib/omnizip/checksums/crc32.rb +0 -2
  107. data/lib/omnizip/checksums/crc64.rb +0 -2
  108. data/lib/omnizip/checksums/crc_base.rb +0 -2
  109. data/lib/omnizip/checksums/registration.rb +0 -2
  110. data/lib/omnizip/checksums/verifier.rb +0 -2
  111. data/lib/omnizip/checksums.rb +0 -2
  112. data/lib/omnizip/chunked/memory_manager.rb +0 -2
  113. data/lib/omnizip/chunked/reader.rb +0 -2
  114. data/lib/omnizip/chunked/writer.rb +0 -2
  115. data/lib/omnizip/chunked.rb +0 -2
  116. data/lib/omnizip/cli/output_formatter.rb +0 -2
  117. data/lib/omnizip/cli/shared.rb +0 -2
  118. data/lib/omnizip/cli.rb +0 -2
  119. data/lib/omnizip/commands/archive_create_command.rb +0 -2
  120. data/lib/omnizip/commands/archive_extract_command.rb +0 -2
  121. data/lib/omnizip/commands/archive_list_command.rb +9 -9
  122. data/lib/omnizip/commands/archive_repair_command.rb +0 -2
  123. data/lib/omnizip/commands/archive_verify_command.rb +0 -2
  124. data/lib/omnizip/commands/compress_command.rb +0 -2
  125. data/lib/omnizip/commands/decompress_command.rb +0 -2
  126. data/lib/omnizip/commands/list_command.rb +0 -2
  127. data/lib/omnizip/commands/metadata_command.rb +0 -2
  128. data/lib/omnizip/commands/parity_create_command.rb +0 -2
  129. data/lib/omnizip/commands/parity_repair_command.rb +0 -2
  130. data/lib/omnizip/commands/parity_verify_command.rb +0 -2
  131. data/lib/omnizip/commands/profile_list_command.rb +0 -2
  132. data/lib/omnizip/commands/profile_show_command.rb +0 -2
  133. data/lib/omnizip/commands.rb +0 -2
  134. data/lib/omnizip/convenience.rb +0 -2
  135. data/lib/omnizip/converter/conversion_registry.rb +0 -2
  136. data/lib/omnizip/converter/conversion_strategy.rb +0 -2
  137. data/lib/omnizip/converter/seven_zip_to_zip_strategy.rb +0 -2
  138. data/lib/omnizip/converter/zip_to_seven_zip_strategy.rb +0 -2
  139. data/lib/omnizip/converter.rb +0 -2
  140. data/lib/omnizip/crypto/aes256/cipher.rb +0 -2
  141. data/lib/omnizip/crypto/aes256/constants.rb +0 -2
  142. data/lib/omnizip/crypto/aes256/key_derivation.rb +0 -2
  143. data/lib/omnizip/crypto/aes256.rb +0 -2
  144. data/lib/omnizip/crypto.rb +0 -2
  145. data/lib/omnizip/entry.rb +44 -0
  146. data/lib/omnizip/error.rb +0 -2
  147. data/lib/omnizip/eta/exponential_smoothing_estimator.rb +0 -2
  148. data/lib/omnizip/eta/moving_average_estimator.rb +0 -2
  149. data/lib/omnizip/eta/rate_calculator.rb +0 -2
  150. data/lib/omnizip/eta/sample_history.rb +0 -2
  151. data/lib/omnizip/eta/time_estimator.rb +0 -2
  152. data/lib/omnizip/eta.rb +0 -2
  153. data/lib/omnizip/extraction/filter_chain.rb +0 -2
  154. data/lib/omnizip/extraction/glob_pattern.rb +0 -2
  155. data/lib/omnizip/extraction/pattern_matcher.rb +0 -2
  156. data/lib/omnizip/extraction/predicate_pattern.rb +0 -2
  157. data/lib/omnizip/extraction/regex_pattern.rb +0 -2
  158. data/lib/omnizip/extraction/selective_extractor.rb +2 -12
  159. data/lib/omnizip/extraction.rb +0 -2
  160. data/lib/omnizip/file_type/mime_classifier.rb +0 -2
  161. data/lib/omnizip/file_type.rb +0 -2
  162. data/lib/omnizip/filter.rb +0 -2
  163. data/lib/omnizip/filter_pipeline.rb +1 -3
  164. data/lib/omnizip/filter_registry.rb +18 -18
  165. data/lib/omnizip/filters/bcj.rb +0 -2
  166. data/lib/omnizip/filters/bcj2/constants.rb +0 -2
  167. data/lib/omnizip/filters/bcj2/decoder.rb +0 -2
  168. data/lib/omnizip/filters/bcj2/encoder.rb +0 -2
  169. data/lib/omnizip/filters/bcj2/stream_data.rb +0 -2
  170. data/lib/omnizip/filters/bcj2.rb +1 -3
  171. data/lib/omnizip/filters/bcj_arm.rb +1 -3
  172. data/lib/omnizip/filters/bcj_arm64.rb +1 -3
  173. data/lib/omnizip/filters/bcj_ia64.rb +1 -3
  174. data/lib/omnizip/filters/bcj_ppc.rb +1 -3
  175. data/lib/omnizip/filters/bcj_sparc.rb +1 -3
  176. data/lib/omnizip/filters/bcj_x86.rb +1 -3
  177. data/lib/omnizip/filters/delta.rb +0 -2
  178. data/lib/omnizip/filters/xz_delta.rb +0 -2
  179. data/lib/omnizip/filters.rb +0 -4
  180. data/lib/omnizip/format_detector.rb +0 -2
  181. data/lib/omnizip/formats/bzip2_file.rb +0 -9
  182. data/lib/omnizip/formats/cpio/bounded_io.rb +0 -2
  183. data/lib/omnizip/formats/cpio/constants.rb +0 -2
  184. data/lib/omnizip/formats/cpio/entry.rb +6 -2
  185. data/lib/omnizip/formats/cpio/reader.rb +0 -2
  186. data/lib/omnizip/formats/cpio/writer.rb +0 -2
  187. data/lib/omnizip/formats/cpio.rb +0 -8
  188. data/lib/omnizip/formats/format_spec_loader.rb +0 -2
  189. data/lib/omnizip/formats/gzip.rb +0 -9
  190. data/lib/omnizip/formats/iso/directory_builder.rb +0 -2
  191. data/lib/omnizip/formats/iso/directory_record.rb +7 -2
  192. data/lib/omnizip/formats/iso/joliet.rb +0 -2
  193. data/lib/omnizip/formats/iso/path_table.rb +0 -2
  194. data/lib/omnizip/formats/iso/reader.rb +0 -2
  195. data/lib/omnizip/formats/iso/rock_ridge.rb +0 -2
  196. data/lib/omnizip/formats/iso/volume_builder.rb +0 -2
  197. data/lib/omnizip/formats/iso/volume_descriptor.rb +0 -2
  198. data/lib/omnizip/formats/iso/writer.rb +0 -2
  199. data/lib/omnizip/formats/iso.rb +0 -7
  200. data/lib/omnizip/formats/lzip.rb +0 -9
  201. data/lib/omnizip/formats/lzma_alone.rb +0 -8
  202. data/lib/omnizip/formats/msi/cab_extractor.rb +0 -2
  203. data/lib/omnizip/formats/msi/constants.rb +0 -2
  204. data/lib/omnizip/formats/msi/directory_resolver.rb +0 -2
  205. data/lib/omnizip/formats/msi/entry.rb +6 -2
  206. data/lib/omnizip/formats/msi/reader.rb +0 -2
  207. data/lib/omnizip/formats/msi/string_pool.rb +0 -2
  208. data/lib/omnizip/formats/msi/table_parser.rb +0 -2
  209. data/lib/omnizip/formats/msi.rb +0 -11
  210. data/lib/omnizip/formats/ole/allocation_table.rb +0 -2
  211. data/lib/omnizip/formats/ole/constants.rb +0 -2
  212. data/lib/omnizip/formats/ole/dirent.rb +6 -2
  213. data/lib/omnizip/formats/ole/header.rb +0 -2
  214. data/lib/omnizip/formats/ole/ranges_io.rb +0 -2
  215. data/lib/omnizip/formats/ole/storage.rb +0 -2
  216. data/lib/omnizip/formats/ole/types/variant.rb +0 -2
  217. data/lib/omnizip/formats/ole.rb +0 -11
  218. data/lib/omnizip/formats/rar/archive_repairer.rb +0 -2
  219. data/lib/omnizip/formats/rar/archive_verifier.rb +0 -2
  220. data/lib/omnizip/formats/rar/block_parser.rb +0 -2
  221. data/lib/omnizip/formats/rar/compression/bit_stream.rb +0 -2
  222. data/lib/omnizip/formats/rar/compression/dispatcher.rb +0 -2
  223. data/lib/omnizip/formats/rar/compression/lz77_huffman/decoder.rb +0 -2
  224. data/lib/omnizip/formats/rar/compression/lz77_huffman/encoder.rb +0 -2
  225. data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_builder.rb +0 -2
  226. data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_coder.rb +0 -2
  227. data/lib/omnizip/formats/rar/compression/lz77_huffman/match_finder.rb +0 -2
  228. data/lib/omnizip/formats/rar/compression/lz77_huffman/sliding_window.rb +0 -2
  229. data/lib/omnizip/formats/rar/compression/lz77_huffman.rb +0 -2
  230. data/lib/omnizip/formats/rar/compression/ppmd/context.rb +0 -2
  231. data/lib/omnizip/formats/rar/compression/ppmd/decoder.rb +0 -2
  232. data/lib/omnizip/formats/rar/compression/ppmd/encoder.rb +0 -2
  233. data/lib/omnizip/formats/rar/compression/ppmd.rb +0 -2
  234. data/lib/omnizip/formats/rar/compression.rb +0 -2
  235. data/lib/omnizip/formats/rar/compression_method_registry.rb +0 -2
  236. data/lib/omnizip/formats/rar/constants.rb +0 -2
  237. data/lib/omnizip/formats/rar/decompressor.rb +0 -2
  238. data/lib/omnizip/formats/rar/external_writer.rb +0 -2
  239. data/lib/omnizip/formats/rar/header.rb +0 -2
  240. data/lib/omnizip/formats/rar/license_validator.rb +0 -2
  241. data/lib/omnizip/formats/rar/models/rar_archive.rb +0 -2
  242. data/lib/omnizip/formats/rar/models/rar_entry.rb +0 -2
  243. data/lib/omnizip/formats/rar/models/rar_volume.rb +0 -2
  244. data/lib/omnizip/formats/rar/models.rb +0 -2
  245. data/lib/omnizip/formats/rar/parity_handler.rb +0 -2
  246. data/lib/omnizip/formats/rar/rar5/compression/lzma.rb +0 -2
  247. data/lib/omnizip/formats/rar/rar5/compression/lzss.rb +0 -2
  248. data/lib/omnizip/formats/rar/rar5/compression/store.rb +0 -2
  249. data/lib/omnizip/formats/rar/rar5/crc32.rb +0 -2
  250. data/lib/omnizip/formats/rar/rar5/encryption/aes256_cbc.rb +0 -2
  251. data/lib/omnizip/formats/rar/rar5/encryption/encryption_header.rb +0 -2
  252. data/lib/omnizip/formats/rar/rar5/encryption/encryption_manager.rb +0 -2
  253. data/lib/omnizip/formats/rar/rar5/encryption/key_derivation.rb +0 -2
  254. data/lib/omnizip/formats/rar/rar5/header.rb +0 -2
  255. data/lib/omnizip/formats/rar/rar5/models/encryption_options.rb +0 -2
  256. data/lib/omnizip/formats/rar/rar5/models/recovery_options.rb +0 -2
  257. data/lib/omnizip/formats/rar/rar5/models/solid_options.rb +0 -2
  258. data/lib/omnizip/formats/rar/rar5/models/volume_options.rb +0 -2
  259. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_manager.rb +0 -2
  260. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_splitter.rb +0 -2
  261. data/lib/omnizip/formats/rar/rar5/multi_volume/volume_writer.rb +0 -2
  262. data/lib/omnizip/formats/rar/rar5/solid/solid_encoder.rb +0 -2
  263. data/lib/omnizip/formats/rar/rar5/solid/solid_manager.rb +0 -2
  264. data/lib/omnizip/formats/rar/rar5/solid/solid_stream.rb +0 -2
  265. data/lib/omnizip/formats/rar/rar5/vint.rb +0 -2
  266. data/lib/omnizip/formats/rar/rar5/writer.rb +0 -2
  267. data/lib/omnizip/formats/rar/rar_format_base.rb +0 -2
  268. data/lib/omnizip/formats/rar/reader.rb +0 -2
  269. data/lib/omnizip/formats/rar/recovery_record.rb +0 -2
  270. data/lib/omnizip/formats/rar/volume_manager.rb +0 -2
  271. data/lib/omnizip/formats/rar/writer.rb +0 -2
  272. data/lib/omnizip/formats/rar.rb +0 -8
  273. data/lib/omnizip/formats/rar3/compressor.rb +0 -2
  274. data/lib/omnizip/formats/rar3/decompressor.rb +0 -2
  275. data/lib/omnizip/formats/rar3/reader.rb +7 -2
  276. data/lib/omnizip/formats/rar3/writer.rb +0 -2
  277. data/lib/omnizip/formats/rar5/compressor.rb +0 -2
  278. data/lib/omnizip/formats/rar5/decompressor.rb +0 -2
  279. data/lib/omnizip/formats/rar5/reader.rb +7 -2
  280. data/lib/omnizip/formats/rar5/writer.rb +0 -2
  281. data/lib/omnizip/formats/rpm/constants.rb +0 -2
  282. data/lib/omnizip/formats/rpm/entry.rb +6 -2
  283. data/lib/omnizip/formats/rpm/header.rb +0 -2
  284. data/lib/omnizip/formats/rpm/lead.rb +0 -2
  285. data/lib/omnizip/formats/rpm/tag.rb +0 -2
  286. data/lib/omnizip/formats/rpm/writer.rb +0 -2
  287. data/lib/omnizip/formats/rpm.rb +0 -2
  288. data/lib/omnizip/formats/seven_zip/bcj2_stream_decompressor.rb +0 -2
  289. data/lib/omnizip/formats/seven_zip/coder_chain.rb +0 -2
  290. data/lib/omnizip/formats/seven_zip/constants.rb +0 -2
  291. data/lib/omnizip/formats/seven_zip/encoded_header.rb +0 -2
  292. data/lib/omnizip/formats/seven_zip/encrypted_header.rb +0 -2
  293. data/lib/omnizip/formats/seven_zip/file_collector.rb +0 -2
  294. data/lib/omnizip/formats/seven_zip/header.rb +0 -2
  295. data/lib/omnizip/formats/seven_zip/header_encryptor.rb +0 -2
  296. data/lib/omnizip/formats/seven_zip/header_writer.rb +0 -2
  297. data/lib/omnizip/formats/seven_zip/models/coder_info.rb +0 -2
  298. data/lib/omnizip/formats/seven_zip/models/file_entry.rb +7 -2
  299. data/lib/omnizip/formats/seven_zip/models/folder.rb +0 -2
  300. data/lib/omnizip/formats/seven_zip/models/stream_info.rb +0 -2
  301. data/lib/omnizip/formats/seven_zip/models.rb +0 -2
  302. data/lib/omnizip/formats/seven_zip/parser.rb +0 -2
  303. data/lib/omnizip/formats/seven_zip/reader.rb +0 -2
  304. data/lib/omnizip/formats/seven_zip/split_archive_reader.rb +0 -2
  305. data/lib/omnizip/formats/seven_zip/split_archive_writer.rb +0 -2
  306. data/lib/omnizip/formats/seven_zip/stream_compressor.rb +0 -2
  307. data/lib/omnizip/formats/seven_zip/stream_decompressor.rb +0 -2
  308. data/lib/omnizip/formats/seven_zip/writer.rb +0 -2
  309. data/lib/omnizip/formats/seven_zip.rb +0 -8
  310. data/lib/omnizip/formats/tar/constants.rb +0 -2
  311. data/lib/omnizip/formats/tar/entry.rb +6 -2
  312. data/lib/omnizip/formats/tar/header.rb +0 -2
  313. data/lib/omnizip/formats/tar/reader.rb +0 -2
  314. data/lib/omnizip/formats/tar/writer.rb +0 -2
  315. data/lib/omnizip/formats/tar.rb +0 -8
  316. data/lib/omnizip/formats/xar/constants.rb +0 -2
  317. data/lib/omnizip/formats/xar/entry.rb +6 -2
  318. data/lib/omnizip/formats/xar/header.rb +0 -2
  319. data/lib/omnizip/formats/xar/reader.rb +0 -2
  320. data/lib/omnizip/formats/xar/toc.rb +0 -2
  321. data/lib/omnizip/formats/xar/writer.rb +0 -2
  322. data/lib/omnizip/formats/xar.rb +0 -8
  323. data/lib/omnizip/formats/xz/reader.rb +0 -2
  324. data/lib/omnizip/formats/xz/writer.rb +0 -2
  325. data/lib/omnizip/formats/xz.rb +0 -2
  326. data/lib/omnizip/formats/xz_const.rb +0 -2
  327. data/lib/omnizip/formats/xz_impl/block_decoder.rb +0 -2
  328. data/lib/omnizip/formats/xz_impl/block_encoder.rb +0 -2
  329. data/lib/omnizip/formats/xz_impl/block_header.rb +0 -2
  330. data/lib/omnizip/formats/xz_impl/block_header_parser.rb +0 -2
  331. data/lib/omnizip/formats/xz_impl/index_decoder.rb +0 -2
  332. data/lib/omnizip/formats/xz_impl/index_encoder.rb +0 -2
  333. data/lib/omnizip/formats/xz_impl/stream_decoder.rb +0 -2
  334. data/lib/omnizip/formats/xz_impl/stream_encoder.rb +0 -2
  335. data/lib/omnizip/formats/xz_impl/stream_footer.rb +0 -2
  336. data/lib/omnizip/formats/xz_impl/stream_footer_parser.rb +0 -2
  337. data/lib/omnizip/formats/xz_impl/stream_header.rb +0 -2
  338. data/lib/omnizip/formats/xz_impl/stream_header_parser.rb +0 -2
  339. data/lib/omnizip/formats/xz_impl/vli.rb +0 -2
  340. data/lib/omnizip/formats/xz_impl.rb +0 -2
  341. data/lib/omnizip/formats/zip/central_directory_header.rb +0 -2
  342. data/lib/omnizip/formats/zip/constants.rb +0 -2
  343. data/lib/omnizip/formats/zip/end_of_central_directory.rb +0 -2
  344. data/lib/omnizip/formats/zip/local_file_header.rb +0 -2
  345. data/lib/omnizip/formats/zip/reader.rb +0 -2
  346. data/lib/omnizip/formats/zip/unix_extra_field.rb +0 -2
  347. data/lib/omnizip/formats/zip/writer.rb +0 -2
  348. data/lib/omnizip/formats/zip/zip64_end_of_central_directory.rb +0 -2
  349. data/lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb +0 -2
  350. data/lib/omnizip/formats/zip/zip64_extra_field.rb +0 -2
  351. data/lib/omnizip/formats/zip.rb +0 -8
  352. data/lib/omnizip/formats.rb +0 -2
  353. data/lib/omnizip/implementations/base/lzma2_decoder_base.rb +0 -2
  354. data/lib/omnizip/implementations/base/lzma2_encoder_base.rb +0 -2
  355. data/lib/omnizip/implementations/base/lzma_decoder_base.rb +0 -2
  356. data/lib/omnizip/implementations/base/lzma_encoder_base.rb +0 -2
  357. data/lib/omnizip/implementations/base/state_machine_base.rb +0 -2
  358. data/lib/omnizip/implementations/base.rb +0 -2
  359. data/lib/omnizip/implementations/seven_zip/lzma/decoder.rb +0 -2
  360. data/lib/omnizip/implementations/seven_zip/lzma/encoder.rb +0 -2
  361. data/lib/omnizip/implementations/seven_zip/lzma/match_finder.rb +0 -2
  362. data/lib/omnizip/implementations/seven_zip/lzma/range_decoder.rb +0 -2
  363. data/lib/omnizip/implementations/seven_zip/lzma/range_encoder.rb +0 -2
  364. data/lib/omnizip/implementations/seven_zip/lzma/state_machine.rb +0 -2
  365. data/lib/omnizip/implementations/seven_zip/lzma.rb +0 -2
  366. data/lib/omnizip/implementations/seven_zip/lzma2/encoder.rb +0 -2
  367. data/lib/omnizip/implementations/seven_zip/lzma2.rb +0 -2
  368. data/lib/omnizip/implementations/seven_zip.rb +0 -2
  369. data/lib/omnizip/implementations/xz_utils/lzma2/decoder.rb +0 -2
  370. data/lib/omnizip/implementations/xz_utils/lzma2/encoder.rb +0 -2
  371. data/lib/omnizip/implementations/xz_utils/lzma2.rb +0 -2
  372. data/lib/omnizip/implementations/xz_utils.rb +0 -2
  373. data/lib/omnizip/implementations.rb +18 -6
  374. data/lib/omnizip/io/buffered_input.rb +0 -2
  375. data/lib/omnizip/io/buffered_output.rb +0 -2
  376. data/lib/omnizip/io/source.rb +0 -2
  377. data/lib/omnizip/io/stream_manager.rb +0 -2
  378. data/lib/omnizip/io.rb +0 -2
  379. data/lib/omnizip/link_handler/hard_link.rb +0 -2
  380. data/lib/omnizip/link_handler/symbolic_link.rb +0 -2
  381. data/lib/omnizip/link_handler.rb +0 -2
  382. data/lib/omnizip/metadata/archive_metadata.rb +0 -2
  383. data/lib/omnizip/metadata/entry_metadata.rb +7 -2
  384. data/lib/omnizip/metadata/metadata_editor.rb +0 -2
  385. data/lib/omnizip/metadata/metadata_registry.rb +0 -2
  386. data/lib/omnizip/metadata/metadata_validator.rb +0 -2
  387. data/lib/omnizip/metadata.rb +0 -2
  388. data/lib/omnizip/models/algorithm_metadata.rb +0 -2
  389. data/lib/omnizip/models/compression_options.rb +0 -2
  390. data/lib/omnizip/models/conversion_options.rb +0 -2
  391. data/lib/omnizip/models/conversion_result.rb +0 -2
  392. data/lib/omnizip/models/eta_result.rb +0 -2
  393. data/lib/omnizip/models/extraction_rule.rb +0 -2
  394. data/lib/omnizip/models/filter_chain.rb +0 -2
  395. data/lib/omnizip/models/filter_config.rb +0 -2
  396. data/lib/omnizip/models/match_result.rb +0 -2
  397. data/lib/omnizip/models/optimization_suggestion.rb +0 -2
  398. data/lib/omnizip/models/parallel_options.rb +0 -2
  399. data/lib/omnizip/models/performance_result.rb +0 -2
  400. data/lib/omnizip/models/profile_report.rb +0 -2
  401. data/lib/omnizip/models/progress_options.rb +0 -2
  402. data/lib/omnizip/models/split_options.rb +0 -2
  403. data/lib/omnizip/optimization_registry.rb +0 -2
  404. data/lib/omnizip/parallel/engine.rb +48 -0
  405. data/lib/omnizip/parallel/job_queue.rb +0 -2
  406. data/lib/omnizip/parallel/job_scheduler.rb +0 -2
  407. data/lib/omnizip/parallel/parallel_compressor.rb +5 -18
  408. data/lib/omnizip/parallel/parallel_extractor.rb +5 -18
  409. data/lib/omnizip/parallel/worker_pool.rb +0 -2
  410. data/lib/omnizip/parallel.rb +1 -2
  411. data/lib/omnizip/parity/chunked_block_processor.rb +0 -2
  412. data/lib/omnizip/parity/galois16.rb +0 -2
  413. data/lib/omnizip/parity/models/creator_packet.rb +0 -2
  414. data/lib/omnizip/parity/models/file_description_packet.rb +0 -2
  415. data/lib/omnizip/parity/models/ifsc_packet.rb +0 -2
  416. data/lib/omnizip/parity/models/main_packet.rb +0 -2
  417. data/lib/omnizip/parity/models/packet.rb +0 -2
  418. data/lib/omnizip/parity/models/packet_registry.rb +0 -2
  419. data/lib/omnizip/parity/models/recovery_slice_packet.rb +0 -2
  420. data/lib/omnizip/parity/models.rb +0 -2
  421. data/lib/omnizip/parity/par2_creator.rb +0 -2
  422. data/lib/omnizip/parity/par2_repairer.rb +0 -2
  423. data/lib/omnizip/parity/par2_verifier.rb +0 -2
  424. data/lib/omnizip/parity/par2cmdline_algorithm.rb +0 -2
  425. data/lib/omnizip/parity/par2cmdline_coefficients.rb +0 -2
  426. data/lib/omnizip/parity/reed_solomon_decoder.rb +0 -2
  427. data/lib/omnizip/parity/reed_solomon_encoder.rb +0 -2
  428. data/lib/omnizip/parity/reed_solomon_matrix.rb +0 -2
  429. data/lib/omnizip/parity.rb +0 -2
  430. data/lib/omnizip/password/encryption_registry.rb +0 -2
  431. data/lib/omnizip/password/encryption_strategy.rb +0 -2
  432. data/lib/omnizip/password/password_validator.rb +0 -2
  433. data/lib/omnizip/password/winzip_aes_strategy.rb +0 -2
  434. data/lib/omnizip/password/zip_crypto_strategy.rb +0 -2
  435. data/lib/omnizip/password.rb +0 -2
  436. data/lib/omnizip/pipe/stream_compressor.rb +0 -2
  437. data/lib/omnizip/pipe/stream_decompressor.rb +0 -2
  438. data/lib/omnizip/pipe.rb +0 -2
  439. data/lib/omnizip/platform/ntfs_streams.rb +0 -2
  440. data/lib/omnizip/platform.rb +0 -2
  441. data/lib/omnizip/profile/archive_profile.rb +0 -2
  442. data/lib/omnizip/profile/balanced_profile.rb +0 -2
  443. data/lib/omnizip/profile/binary_profile.rb +0 -2
  444. data/lib/omnizip/profile/compression_profile.rb +0 -2
  445. data/lib/omnizip/profile/custom_profile.rb +0 -2
  446. data/lib/omnizip/profile/fast_profile.rb +0 -2
  447. data/lib/omnizip/profile/maximum_profile.rb +0 -2
  448. data/lib/omnizip/profile/profile_detector.rb +0 -2
  449. data/lib/omnizip/profile/profile_registry.rb +0 -2
  450. data/lib/omnizip/profile/text_profile.rb +0 -2
  451. data/lib/omnizip/profile.rb +0 -2
  452. data/lib/omnizip/profiler/memory_profiler.rb +0 -2
  453. data/lib/omnizip/profiler/method_profiler.rb +0 -2
  454. data/lib/omnizip/profiler/report_generator.rb +0 -2
  455. data/lib/omnizip/profiler.rb +0 -2
  456. data/lib/omnizip/progress/callback_reporter.rb +0 -2
  457. data/lib/omnizip/progress/console_reporter.rb +0 -2
  458. data/lib/omnizip/progress/log_reporter.rb +0 -2
  459. data/lib/omnizip/progress/operation_progress.rb +0 -2
  460. data/lib/omnizip/progress/progress_bar.rb +0 -2
  461. data/lib/omnizip/progress/progress_reporter.rb +0 -2
  462. data/lib/omnizip/progress/progress_tracker.rb +0 -2
  463. data/lib/omnizip/progress/silent_reporter.rb +0 -2
  464. data/lib/omnizip/progress.rb +0 -2
  465. data/lib/omnizip/registry.rb +0 -3
  466. data/lib/omnizip/rubyzip_compat.rb +0 -4
  467. data/lib/omnizip/temp/safe_extract.rb +0 -2
  468. data/lib/omnizip/temp/temp_file.rb +0 -2
  469. data/lib/omnizip/temp/temp_file_pool.rb +0 -2
  470. data/lib/omnizip/temp.rb +0 -2
  471. data/lib/omnizip/version.rb +1 -1
  472. data/lib/omnizip/zip/entry.rb +7 -2
  473. data/lib/omnizip/zip/file.rb +0 -2
  474. data/lib/omnizip/zip/input_stream.rb +0 -2
  475. data/lib/omnizip/zip/output_stream.rb +0 -2
  476. data/lib/omnizip/zip.rb +0 -2
  477. data/lib/omnizip.rb +2 -2
  478. metadata +4 -6
  479. data/lib/omnizip/filters/filter_base.rb +0 -8
  480. data/lib/omnizip/filters/registration.rb +0 -24
  481. data/lib/omnizip/filters/registry.rb +0 -113
  482. data/lib/omnizip/format_registry.rb +0 -102
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -85,23 +83,19 @@ module Omnizip
85
83
  )
86
84
 
87
85
  # Read input
88
- input_data = input.respond_to?(:read) ? input.read : input
86
+ input_data = Omnizip::IO::Source.for(input).read
89
87
 
90
88
  # Encode with LZMA2
91
89
  compressed = encoder.encode(input_data)
92
90
 
93
91
  # Write to output
94
- if output.respond_to?(:write)
95
- output.write(compressed)
96
- else
97
- output.replace(compressed)
98
- end
92
+ Omnizip::IO::Sink.for(output).write(compressed)
99
93
  end
100
94
 
101
95
  # Decompress LZMA2 data
102
96
  def decompress(input, output, options = {})
103
97
  # Read input data
104
- input_data = input.respond_to?(:read) ? input.read : input
98
+ input_data = Omnizip::IO::Source.for(input).read
105
99
  input_stream = StringIO.new(input_data)
106
100
  input_stream.set_encoding(Encoding::BINARY)
107
101
 
@@ -122,11 +116,7 @@ module Omnizip
122
116
  decompressed = decoder.decode_stream
123
117
 
124
118
  # Write to output
125
- if output.respond_to?(:write)
126
- output.write(decompressed)
127
- else
128
- output.replace(decompressed)
129
- end
119
+ Omnizip::IO::Sink.for(output).write(decompressed)
130
120
  end
131
121
 
132
122
  # Encode dictionary size as single byte for LZMA2 properties
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
 
7
5
  module Omnizip
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Algorithm registration - triggers autoload and registers all algorithms
6
4
  # This file should be required after algorithms.rb which sets up autoloads
7
5
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -98,9 +96,7 @@ module Omnizip
98
96
  # @param options [Models::CompressionOptions] Decompression options
99
97
  # @return [void]
100
98
  def decompress(input_stream, output_stream, _options = nil)
101
- if output_stream.respond_to?(:set_encoding)
102
- output_stream.set_encoding(Encoding::BINARY)
103
- end
99
+ output_stream.set_encoding(Encoding::BINARY)
104
100
  decoder = Decoder.new(input_stream)
105
101
  decompressed = decoder.decode_stream
106
102
  output_stream.write(decompressed)
@@ -1,9 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
- # Compression algorithm implementations
4
+ # High-level compression algorithm facades.
5
+ #
6
+ # Each top-level constant in this namespace (Deflate, BZip2, LZMA,
7
+ # LZMA2, Zstandard, PPMd7, PPMd8) is a facade that exposes the
8
+ # streaming +.compress+/+.decompress+ contract from +Omnizip::Algorithm+.
9
+ # Format-specific readers/writers call these facades for the actual
10
+ # compression work; the facades themselves do not know about archive
11
+ # container structure.
12
+ #
13
+ # Bit-level SDK ports (state machines, range coders, match finders)
14
+ # live under +Omnizip::Implementations+, not here. This namespace
15
+ # owns the *streaming contract*; that namespace owns the *primitives*.
16
+ # The boundary is: +Algorithms+ calls +Implementations+, never the
17
+ # reverse.
7
18
  module Algorithms
8
19
  autoload :PPMdBase, "omnizip/algorithms/ppmd_base"
9
20
  autoload :LZMA2Const, "omnizip/algorithms/lzma2/constants"
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  # Unified archive handler interface for the Convenience module.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  module ArchiveHandlers
7
5
  # Adapter that exposes the canonical +create+/+open+/+extract_to+
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  module ArchiveHandlers
7
5
  # Adapter that exposes the canonical +create+/+open+/+extract_to+
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  # Archive handler namespace. Each format ships a Handler class here
7
5
  # that adapts its format-specific API to the canonical contract
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  module Buffer
7
5
  # Wrapper for in-memory archive operations
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  require "stringio"
6
4
 
7
5
  module Omnizip
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  require "stringio"
6
4
 
7
5
  module Omnizip
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  class ChecksumRegistry < Omnizip::Registry
7
5
  BUILTIN_CHECKSUMS = {
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Checksum registration - triggers autoload and registers all checksums
6
4
  # This file should be required after checksums.rb which sets up autoloads
7
5
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  # Copyright (C) 2025 Ribose Inc.
6
4
  #
7
5
  # Permission is hereby granted, free of charge, to any person obtaining a
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  # Checksum implementations
7
5
  module Checksums
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  require "tempfile"
6
4
 
7
5
  module Omnizip
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  module Chunked
7
5
  # Read large files in chunks for memory-efficient processing
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  module Chunked
7
5
  # Write large files incrementally in chunks
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  # Chunked processing for memory-efficient large file handling
7
5
  module Chunked
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  module Omnizip
6
4
  class Cli
7
5
  # Shared helpers used by the Thor command groups defined in
data/lib/omnizip/cli.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- require "omnizip"
5
3
  #
6
4
  # Copyright (C) 2024 Ribose Inc.
7
5
  #
@@ -187,29 +185,31 @@ module Omnizip
187
185
  end
188
186
  end
189
187
 
190
- # Helper methods to handle different entry types
188
+ # Helper methods to handle different entry types. Each delegates
189
+ # to the Omnizip::Entry contract; format-specific accessors stay
190
+ # on the format entry classes themselves.
191
191
  def entry_name(entry)
192
- entry.respond_to?(:name) ? entry.name : entry.to_s
192
+ entry.entry_name || entry.to_s
193
193
  end
194
194
 
195
195
  def entry_directory?(entry)
196
- entry.respond_to?(:directory?) && entry.directory?
196
+ entry.entry_directory?
197
197
  end
198
198
 
199
199
  def entry_size(entry)
200
- entry.respond_to?(:size) ? entry.size : 0
200
+ entry.entry_size || 0
201
201
  end
202
202
 
203
203
  def entry_compressed_size(entry)
204
- entry.respond_to?(:compressed_size) ? entry.compressed_size : nil
204
+ entry.compressed_size if entry.is_a?(Omnizip::Formats::SevenZip::Models::FileEntry)
205
205
  end
206
206
 
207
207
  def entry_has_stream?(entry)
208
- entry.respond_to?(:has_stream?) ? entry.has_stream? : true
208
+ entry.has_stream? if entry.is_a?(Omnizip::Formats::SevenZip::Models::FileEntry)
209
209
  end
210
210
 
211
211
  def entry_mtime(entry)
212
- entry.respond_to?(:mtime) ? entry.mtime : nil
212
+ entry.entry_mtime
213
213
  end
214
214
  end
215
215
  end