omnizip 0.3.46 → 0.3.47
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -0
- data/CONTEXT.md +3 -2
- data/lib/omnizip/convenience.rb +4 -2
- data/lib/omnizip/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22e232b5a4b1ddbbece5ce1b6052ea90a9e76a120e8d246cf03ae0b568d4ba73
|
|
4
|
+
data.tar.gz: af66a96e666d25e75196b68b317e2f34a37f2fa3e0da2d79d8f2d67d2a6d86a2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed6a8cd7c2613912ed4c50e914cd1a4184253e6b66325741649d2790c9b0650546f6066354a28956b98e2f0a7c17853a56a0723308877a93043b55979270a2c1
|
|
7
|
+
data.tar.gz: f6ad381f14bfd3a621584747bd71f544adacafc6d8241261f6bf7c553a92763ca0fef2165d4a65895f0ff54231b071e6f98903d87caf7125bfe229c372afc489
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.3.46] - 2026-08-31
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- The Archive facade and convenience layer create `.rar` archives:
|
|
14
|
+
the RAR ArchiveHandler raised "RAR archives cannot be created
|
|
15
|
+
(patented format)" while `Formats::Rar.create` has written
|
|
16
|
+
unrar-verified STORE archives since 0.3.39 and the CLI create
|
|
17
|
+
command worked — three front doors, three different truths. The
|
|
18
|
+
handler now delegates through the same proxy pattern as the 7z
|
|
19
|
+
and zip handlers.
|
|
20
|
+
- Explicit directory entries for both RAR writers
|
|
21
|
+
(`add_directory_entry`): the Builder's `add_directory` output —
|
|
22
|
+
and empty trees — no longer vanish from RAR archives. RAR4
|
|
23
|
+
reuses its unrar-verified 0xE0-mask path; RAR5 writes
|
|
24
|
+
FileFlags-directory-bit headers with Unix directory attributes
|
|
25
|
+
(the constant previously mislabeled 0x0001 as "has attributes" —
|
|
26
|
+
it is the spec's Directory flag), and the solid path writes
|
|
27
|
+
directory headers separately so stream indexes stay aligned.
|
|
28
|
+
- `omnizip archive repair ARCHIVE OUTPUT` registered (the command
|
|
29
|
+
existed but was wired to nothing; like `verify`, its
|
|
30
|
+
`Formats::Rar.repair` call passed options the module method never
|
|
31
|
+
accepted — fixed and forwarded).
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- `Formats::Rar.repair` accepts the options hash the repair command
|
|
35
|
+
has always passed (arity crash on first contact).
|
|
36
|
+
|
|
10
37
|
## [0.3.45] - 2026-08-31
|
|
11
38
|
|
|
12
39
|
### Changed
|
data/CONTEXT.md
CHANGED
|
@@ -16,8 +16,9 @@ here.
|
|
|
16
16
|
- **Extension route** — mapping from a file extension to a format
|
|
17
17
|
symbol. Writable routes (`ARCHIVE_FORMAT_EXTENSIONS`) may create
|
|
18
18
|
archives; read routes (`READ_ARCHIVE_FORMAT_EXTENSIONS`) only
|
|
19
|
-
extract/list/read. `.rar
|
|
20
|
-
|
|
19
|
+
extract/list/read. `.rar` is a writable route (its handler
|
|
20
|
+
creates unrar-verified STORE archives); `.cpio`, `.iso` remain
|
|
21
|
+
read-only routes.
|
|
21
22
|
|
|
22
23
|
## Reading and decode
|
|
23
24
|
|
data/lib/omnizip/convenience.rb
CHANGED
|
@@ -228,13 +228,15 @@ module Omnizip
|
|
|
228
228
|
".zip" => :zip,
|
|
229
229
|
".tar" => :tar,
|
|
230
230
|
".7z" => :seven_zip,
|
|
231
|
+
".rar" => :rar,
|
|
231
232
|
}.freeze
|
|
232
233
|
|
|
233
234
|
# Extensions naming formats with read-only convenience routing.
|
|
234
235
|
# Writing them a ZIP under a foreign name was silent corruption;
|
|
235
236
|
# creation raises truthfully instead (the format-level writers
|
|
236
|
-
# exist for
|
|
237
|
-
|
|
237
|
+
# exist for CPIO/ISO but are not part of the archive API; RAR
|
|
238
|
+
# moved to the writable routes when its handler gained create).
|
|
239
|
+
READ_ONLY_FORMAT_EXTENSIONS = [".iso", ".cpio"].freeze
|
|
238
240
|
|
|
239
241
|
# Extensions whose format has a READ-ONLY handler: extraction and
|
|
240
242
|
# listing route to it, while creation keeps raising.
|
data/lib/omnizip/version.rb
CHANGED