omnizip 0.4.9-arm-linux → 0.4.11-arm-linux

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop-oss.yml +814 -0
  3. data/.rubocop.yml +15 -1
  4. data/.rubocop_todo.yml +7 -1
  5. data/CHANGELOG.md +17 -0
  6. data/Gemfile +23 -1
  7. data/README.adoc +101 -1282
  8. data/docs/compatibility.adoc +1 -2
  9. data/docs/lychee.toml +1 -7
  10. data/lib/omnizip/algorithms/deflate/constants.rb +5 -3
  11. data/lib/omnizip/implementations/rust/archive.rb +9 -41
  12. data/lib/omnizip/implementations/rust/ffi_library.rb +127 -0
  13. data/lib/omnizip/implementations/rust/fiddle_library.rb +144 -0
  14. data/lib/omnizip/implementations/rust/library.rb +39 -104
  15. data/lib/omnizip/implementations/rust.rb +2 -0
  16. data/lib/omnizip/version.rb +1 -1
  17. data/lib/tasks/docs.rake +146 -0
  18. data/readme-docs/rar-archives.adoc +505 -0
  19. data/scripts/generate_rar_oracle_fixtures.rb +177 -0
  20. data/vendor/libomnizip_ffi.so +0 -0
  21. metadata +21 -74
  22. data/TODO.refactor/00-overview.md +0 -67
  23. data/TODO.refactor/01-registry-base-class.md +0 -81
  24. data/TODO.refactor/02-error-hierarchy.md +0 -57
  25. data/TODO.refactor/03-autoload-entry-point.md +0 -69
  26. data/TODO.refactor/04-filter-base-consolidation.md +0 -49
  27. data/TODO.refactor/05-send-private-methods.md +0 -64
  28. data/TODO.refactor/06-instance-variable-access.md +0 -69
  29. data/TODO.refactor/07-respond-to-replacement.md +0 -237
  30. data/TODO.refactor/08-spec-doubles.md +0 -27
  31. data/TODO.refactor/09-cli-shared-module.md +0 -35
  32. data/TODO.refactor/10-format-detector-ocp.md +0 -34
  33. data/TODO.refactor/11-convenience-decoupling.md +0 -38
  34. data/TODO.refactor/12-thread-safety.md +0 -8
  35. data/TODO.refactor/13-lutaml-model-migration.md +0 -158
  36. data/TODO.refactor/14-add-missing-specs.md +0 -25
  37. data/docs/.github/workflows/docs.yml +0 -142
  38. data/docs/.gitignore +0 -21
  39. data/docs/Gemfile +0 -13
  40. data/docs/README.md +0 -101
  41. data/docs/_config.yml +0 -112
  42. data/docs/comparison/feature-matrix.adoc +0 -694
  43. data/docs/comparison/index.adoc +0 -113
  44. data/docs/comparison/vs-7zip.adoc +0 -309
  45. data/docs/comparison/vs-peazip.adoc +0 -77
  46. data/docs/comparison/vs-rubyzip.adoc +0 -342
  47. data/docs/comparison/vs-winrar.adoc +0 -100
  48. data/docs/concepts/index.adoc +0 -129
  49. data/docs/developer/architecture.adoc +0 -256
  50. data/docs/developer/contributing.adoc +0 -158
  51. data/docs/developer/index.adoc +0 -25
  52. data/docs/developer/testing.adoc +0 -212
  53. data/docs/getting-started/basic-usage.adoc +0 -263
  54. data/docs/getting-started/index.adoc +0 -42
  55. data/docs/getting-started/installation.adoc +0 -138
  56. data/docs/getting-started/quick-start.adoc +0 -183
  57. data/docs/getting-started/your-first-archive.adoc +0 -219
  58. data/docs/guides/advanced-features/encryption.adoc +0 -277
  59. data/docs/guides/advanced-features/index.adoc +0 -59
  60. data/docs/guides/advanced-features/parallel-processing.adoc +0 -144
  61. data/docs/guides/advanced-features/progress-tracking.adoc +0 -124
  62. data/docs/guides/advanced-features/streaming.adoc +0 -142
  63. data/docs/guides/archive-formats/gzip-format.adoc +0 -105
  64. data/docs/guides/archive-formats/index.adoc +0 -160
  65. data/docs/guides/archive-formats/ole-format.adoc +0 -151
  66. data/docs/guides/archive-formats/rar-format.adoc +0 -104
  67. data/docs/guides/archive-formats/rar5.adoc +0 -521
  68. data/docs/guides/archive-formats/rpm-format.adoc +0 -108
  69. data/docs/guides/archive-formats/seven-zip-format.adoc +0 -35
  70. data/docs/guides/archive-formats/tar-format.adoc +0 -106
  71. data/docs/guides/archive-formats/xz-format.adoc +0 -118
  72. data/docs/guides/archive-formats/zip-format.adoc +0 -35
  73. data/docs/guides/compression-algorithms/bzip2.adoc +0 -114
  74. data/docs/guides/compression-algorithms/deflate.adoc +0 -313
  75. data/docs/guides/compression-algorithms/index.adoc +0 -190
  76. data/docs/guides/compression-algorithms/lzma.adoc +0 -394
  77. data/docs/guides/compression-algorithms/lzma2.adoc +0 -244
  78. data/docs/guides/compression-algorithms/ppmd.adoc +0 -313
  79. data/docs/guides/compression-algorithms/zstandard.adoc +0 -296
  80. data/docs/guides/creating-archives.adoc +0 -348
  81. data/docs/guides/extracting-archives.adoc +0 -53
  82. data/docs/guides/format-conversion.adoc +0 -64
  83. data/docs/guides/index.adoc +0 -49
  84. data/docs/guides/migration-rubyzip.adoc +0 -217
  85. data/docs/guides/parity-archives.adoc +0 -605
  86. data/docs/guides/performance-tuning.adoc +0 -88
  87. data/docs/index.adoc +0 -228
  88. data/docs/reference/api/overview.adoc +0 -187
  89. data/docs/reference/cli/compress-command.adoc +0 -114
  90. data/docs/reference/cli/overview.adoc +0 -140
  91. data/docs/reference/index.adoc +0 -26
  92. data/docs/resources/faq.adoc +0 -185
  93. data/docs/resources/quick-reference.adoc +0 -222
  94. data/docs/troubleshooting/index.adoc +0 -207
@@ -1,25 +0,0 @@
1
- # 14 — Add missing specs
2
-
3
- Priority: **high**.
4
- Status: TODO.
5
-
6
- ## Plan
7
-
8
- Add or strengthen specs for:
9
-
10
- 1. `Omnizip::Registry` (new base class from track 01) — register / get /
11
- registered? / available / reset! / thread-safety smoke test / custom
12
- not-found error.
13
- 2. `Omnizip::Error` hierarchy (track 02) — confirm inheritance and
14
- aliases.
15
- 3. `Omnizip::Cli::Shared` (track 09) — `handle_error` and
16
- `format_bytes`.
17
- 4. `Omnizip::IO::Source` / `Omnizip::IO::Sink` (track 07) — adapter
18
- behavior for String / StringIO / File / Pathname.
19
- 5. Promoted public methods (track 05) — wherever a method moves from
20
- private to public, ensure a spec covers its new visibility.
21
-
22
- ## Acceptance
23
-
24
- - All new specs pass.
25
- - No `double()` introduced.
@@ -1,142 +0,0 @@
1
- name: Documentation
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- - master
8
- paths:
9
- - 'docs/**'
10
- - '.github/workflows/docs.yml'
11
- pull_request:
12
- paths:
13
- - 'docs/**'
14
- - '.github/workflows/docs.yml'
15
-
16
- jobs:
17
- build:
18
- name: Build Jekyll Site
19
- runs-on: ubuntu-latest
20
-
21
- steps:
22
- - name: Checkout repository
23
- uses: actions/checkout@v4
24
-
25
- - name: Setup Ruby
26
- uses: ruby/setup-ruby@v1
27
- with:
28
- ruby-version: '3.2'
29
- bundler-cache: false
30
-
31
- - name: Cache dependencies
32
- uses: actions/cache@v4
33
- with:
34
- path: docs/vendor/bundle
35
- key: ${{ runner.os }}-gems-${{ hashFiles('docs/Gemfile.lock') }}
36
- restore-keys: |
37
- ${{ runner.os }}-gems-
38
-
39
- - name: Install dependencies
40
- run: |
41
- cd docs
42
- bundle config path vendor/bundle
43
- bundle install --jobs 4 --retry 3
44
-
45
- - name: Build Jekyll site
46
- run: |
47
- cd docs
48
- bundle exec jekyll build --trace
49
- env:
50
- JEKYLL_ENV: production
51
-
52
- - name: Upload build artifact
53
- uses: actions/upload-artifact@v4
54
- with:
55
- name: site
56
- path: docs/_site
57
- retention-days: 7
58
-
59
- link-check:
60
- name: Check Links
61
- runs-on: ubuntu-latest
62
- needs: build
63
- continue-on-error: true
64
-
65
- steps:
66
- - name: Checkout repository
67
- uses: actions/checkout@v4
68
-
69
- - name: Download build artifact
70
- uses: actions/download-artifact@v4
71
- with:
72
- name: site
73
- path: docs/_site
74
-
75
- - name: Install lychee
76
- run: |
77
- curl -sSL https://github.com/lycheeverse/lychee/releases/download/lychee-v0.22.0/lychee-x86_64-unknown-linux-gnu.tar.gz | tar -xz
78
- sudo mv lychee /usr/local/bin/
79
-
80
- - name: Run link checker
81
- run: |
82
- cd docs
83
- lychee --config .lychee.toml _site --format markdown --output lychee-report.md
84
- continue-on-error: true
85
-
86
- - name: Display link check summary
87
- if: always()
88
- run: |
89
- cd docs
90
- if [ -f lychee-report.md ]; then
91
- echo "## Link Check Results" >> $GITHUB_STEP_SUMMARY
92
- cat lychee-report.md >> $GITHUB_STEP_SUMMARY
93
- fi
94
-
95
- - name: Check for broken links
96
- run: |
97
- cd docs
98
- lychee --config .lychee.toml _site
99
-
100
- validate-structure:
101
- name: Validate Documentation Structure
102
- runs-on: ubuntu-latest
103
-
104
- steps:
105
- - name: Checkout repository
106
- uses: actions/checkout@v4
107
-
108
- - name: Check for required files
109
- run: |
110
- cd docs
111
- required_files=(
112
- "index.adoc"
113
- "README.md"
114
- "_config.yml"
115
- "Gemfile"
116
- ".lychee.toml"
117
- )
118
- missing_files=()
119
- for file in "${required_files[@]}"; do
120
- if [ ! -f "$file" ]; then
121
- missing_files+=("$file")
122
- fi
123
- done
124
- if [ ${#missing_files[@]} -gt 0 ]; then
125
- echo "Missing required files:"
126
- printf '%s\n' "${missing_files[@]}"
127
- exit 1
128
- fi
129
-
130
- summary:
131
- name: Build Summary
132
- runs-on: ubuntu-latest
133
- needs: [build, link-check, validate-structure]
134
- if: always()
135
-
136
- steps:
137
- - name: Generate summary
138
- run: |
139
- echo "## Documentation Build Summary" >> $GITHUB_STEP_SUMMARY
140
- echo "Jekyll build completed" >> $GITHUB_STEP_SUMMARY
141
- echo "Link validation completed" >> $GITHUB_STEP_SUMMARY
142
- echo "Structure validation completed" >> $GITHUB_STEP_SUMMARY
data/docs/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- # Jekyll build files
2
- _site/
3
- .sass-cache/
4
- .jekyll-cache/
5
- .jekyll-metadata
6
-
7
- # Lychee cache
8
- .lycheecache
9
-
10
- # OS files
11
- .DS_Store
12
- Thumbs.db
13
-
14
- # Editor files
15
- *.swp
16
- *.swo
17
- *~
18
-
19
- # Ruby
20
- *.gem
21
- *.rbc
data/docs/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "jekyll", "~> 4.4"
6
- gem "jekyll-asciidoc"
7
- gem "jekyll-seo-tag"
8
- gem "just-the-docs"
9
-
10
- group :jekyll_plugins do
11
- gem "jekyll-feed"
12
- gem "jekyll-sitemap"
13
- end
data/docs/README.md DELETED
@@ -1,101 +0,0 @@
1
- # Omnizip Documentation
2
-
3
- This directory contains the documentation site for Omnizip, built with [Jekyll](https://jekyllrb.com/) and the [Just the Docs](https://just-the-docs.github.io/just-the-docs/) theme.
4
-
5
- ## Building the Documentation Site
6
-
7
- ### Prerequisites
8
-
9
- - Ruby 3.0 or higher
10
- - Bundler
11
-
12
- ### Installation
13
-
14
- ```bash
15
- cd docs
16
- bundle install
17
- ```
18
-
19
- ### Building
20
-
21
- ```bash
22
- bundle exec jekyll build
23
- ```
24
-
25
- The built site will be in the `_site` directory.
26
-
27
- ### Serving Locally
28
-
29
- ```bash
30
- bundle exec jekyll serve
31
- ```
32
-
33
- Then open http://localhost:4000/omnizip/ in your browser.
34
-
35
- ## Documentation Structure
36
-
37
- ```
38
- docs/
39
- ├── index.adoc # Home page
40
- ├── getting-started/ # Installation and quick start guides
41
- ├── guides/ # Comprehensive usage guides
42
- │ ├── basic-usage/ # Basic operations
43
- │ ├── advanced-usage/ # Advanced features
44
- │ ├── compression-algorithms/ # Algorithm documentation
45
- │ ├── archive-formats/ # Format documentation
46
- │ └── filters/ # Filter documentation
47
- ├── reference/ # Technical reference
48
- │ ├── cli/ # CLI documentation
49
- │ └── api/ # Ruby API documentation
50
- ├── resources/ # Additional resources
51
- ├── concepts/ # Core concepts
52
- ├── developer/ # Development documentation
53
- ├── examples/ # Usage examples
54
- └── troubleshooting/ # Troubleshooting guides
55
- ```
56
-
57
- ## Writing Documentation
58
-
59
- Documentation is written in [AsciiDoc](https://asciidoctor.org/) format. Each page should start with YAML front matter:
60
-
61
- ```yaml
62
- ---
63
- title: Page Title
64
- nav_order: 1
65
- ---
66
- ```
67
-
68
- ### Linking
69
-
70
- Use AsciiDoc link syntax:
71
-
72
- - Internal link: `link:path/to/page.adoc[Link text]`
73
- - External link: `https://example.com[Link text]`
74
-
75
- ### Code Blocks
76
-
77
- Use source code blocks with syntax highlighting:
78
-
79
- ```asciidoc
80
- [source,ruby]
81
- ----
82
- require 'omnizip'
83
- ----
84
- ```
85
-
86
- ## Checking Links
87
-
88
- The documentation site includes a link checker using [lychee](https://github.com/lycheeverse/lychee). To check links:
89
-
90
- ```bash
91
- # Install lychee
92
- cargo install lychee
93
-
94
- # Run link checker
95
- cd docs
96
- lychee --config .lychee.toml _site
97
- ```
98
-
99
- ## License
100
-
101
- Copyright 2025 Ribose Inc.
data/docs/_config.yml DELETED
@@ -1,112 +0,0 @@
1
- title: "Omnizip documentation"
2
- description: Pure Ruby compression library with support for LZMA, LZMA2, BZip2, PPMd7/8, Deflate, Deflate64, Zstandard, and multiple archive formats (.7z, ZIP, RAR, TAR, ISO, CPIO, GZIP, XZ, BZIP2).
3
- url: https://metanorma.github.io
4
- baseurl: /omnizip
5
-
6
- theme: just-the-docs
7
- remote_theme: just-the-docs/just-the-docs
8
-
9
- # AsciiDoc support
10
- asciidoc: {}
11
- asciidoctor:
12
- attributes:
13
- - idprefix=_
14
- - source-highlighter=rouge
15
- - icons=font
16
- - experimental=''
17
-
18
- plugins:
19
- - jekyll-asciidoc
20
- - jekyll-seo-tag
21
-
22
- # Search configuration
23
- search_enabled: true
24
- search:
25
- heading_level: 3
26
- previews: 3
27
- preview_words_before: 5
28
- preview_words_after: 10
29
- tokenizer_separator: /[\s/]+/
30
- button: true
31
-
32
- # Enable copy button for code snippets
33
- enable_copy_code_button: true
34
-
35
- # Navigation
36
- nav_sort: case_insensitive
37
-
38
- # Footer
39
- footer_content: 'Copyright © 2025 Ribose Inc.'
40
-
41
- # Color scheme - supports dark mode toggle
42
- color_scheme: light
43
-
44
- # Enable dark mode toggle
45
- color_schemes:
46
- light:
47
- name: Light
48
- dark:
49
- name: Dark
50
-
51
- # Allow users to toggle between themes
52
- color_scheme_toggle:
53
- enabled: true
54
-
55
- # Logo
56
- logo: "/assets/logo.svg"
57
-
58
- # Auxiliary links
59
- aux_links:
60
- "Omnizip on GitHub":
61
- - "https://github.com/metanorma/omnizip"
62
- "Report Issue":
63
- - "https://github.com/metanorma/omnizip/issues"
64
-
65
- aux_links_new_tab: true
66
-
67
- # Heading anchors
68
- heading_anchors: true
69
-
70
- # Back to top
71
- back_to_top: true
72
- back_to_top_text: "Back to top"
73
-
74
- # Mermaid diagram support
75
- mermaid:
76
- version: "10.6.0"
77
-
78
- # Last modified timestamps
79
- last_edit_timestamp: true
80
- last_edit_time_format: "%b %e %Y at %I:%M %p"
81
-
82
- # Edit on GitHub links
83
- gh_edit_link: true
84
- gh_edit_link_text: "Edit this page on GitHub"
85
- gh_edit_repository: "https://github.com/metanorma/omnizip"
86
- gh_edit_branch: "main"
87
- gh_edit_source: docs
88
- gh_edit_view_mode: "edit"
89
-
90
- # Defaults
91
- defaults:
92
- - scope:
93
- path: ""
94
- type: "pages"
95
- values:
96
- layout: "default"
97
- nav_exclude: false
98
-
99
- # Include files
100
- include:
101
- - "*.adoc"
102
- - "_diagrams"
103
- - "assets"
104
-
105
- # Exclude files
106
- exclude:
107
- - Gemfile
108
- - Gemfile.lock
109
- - README.md
110
-
111
- # Permalink structure
112
- permalink: pretty