cabriolet 0.2.2 → 0.2.4

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.
@@ -188,9 +188,9 @@ module Cabriolet
188
188
  # @param paths [Array<String>] Array of archive paths
189
189
  # @yield [file, archive_path] Yields each file with its archive path
190
190
  # @return [Hash] Processing statistics
191
- def process_archives(paths, &block)
191
+ def process_archives(paths, &)
192
192
  paths.each do |path|
193
- process_archive(path, &block)
193
+ process_archive(path, &)
194
194
  end
195
195
 
196
196
  @stats
@@ -98,7 +98,7 @@ module Cabriolet
98
98
  raise ArgumentError, "Invalid mode: #{mode}"
99
99
  end
100
100
 
101
- ::File.open(@filename, file_mode)
101
+ ::File.open(@filename, file_mode) # rubocop:disable Style/FileOpen -- lifecycle managed by close/closed?
102
102
  rescue Errno::ENOENT, Errno::EACCES => e
103
103
  raise IOError, "Cannot open file #{@filename}: #{e.message}"
104
104
  end
@@ -324,9 +324,9 @@ module Cabriolet
324
324
  }
325
325
  end
326
326
 
327
- def to_json(*args)
327
+ def to_json(*)
328
328
  require "json"
329
- to_h.to_json(*args)
329
+ to_h.to_json(*)
330
330
  end
331
331
  end
332
332
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cabriolet
4
- VERSION = "0.2.2"
4
+ VERSION = "0.2.4"
5
5
  end
data/lib/cabriolet.rb CHANGED
@@ -65,101 +65,99 @@ module Cabriolet
65
65
  # Default buffer size of 64KB - better for modern systems
66
66
  # Larger buffers reduce I/O syscall overhead significantly
67
67
  self.default_buffer_size = 65_536
68
- end
69
68
 
70
- # Models
71
- require_relative "cabriolet/models/cabinet"
72
- require_relative "cabriolet/models/folder"
73
- require_relative "cabriolet/models/folder_data"
74
- require_relative "cabriolet/models/file"
75
- require_relative "cabriolet/models/chm_header"
76
- require_relative "cabriolet/models/chm_section"
77
- require_relative "cabriolet/models/chm_file"
78
- require_relative "cabriolet/models/szdd_header"
79
- require_relative "cabriolet/models/kwaj_header"
80
- require_relative "cabriolet/models/hlp_header"
81
- require_relative "cabriolet/models/hlp_file"
82
- require_relative "cabriolet/models/winhelp_header"
83
- require_relative "cabriolet/models/lit_header"
84
- require_relative "cabriolet/models/oab_header"
85
-
86
- # Load errors first (needed by algorithm_factory)
87
-
88
- # Load plugin system
89
- require_relative "cabriolet/plugin"
90
- require_relative "cabriolet/plugin_validator"
91
- require_relative "cabriolet/plugin_manager"
92
-
93
- # Load algorithm factory
94
- require_relative "cabriolet/algorithm_factory"
95
-
96
- # Load core components
97
-
98
- require_relative "cabriolet/quantum_shared"
99
-
100
- require_relative "cabriolet/huffman/tree"
101
- require_relative "cabriolet/huffman/decoder"
102
- require_relative "cabriolet/huffman/encoder"
103
-
104
- require_relative "cabriolet/decompressors/base"
105
- require_relative "cabriolet/decompressors/none"
106
- require_relative "cabriolet/decompressors/lzss"
107
- require_relative "cabriolet/decompressors/mszip"
108
- require_relative "cabriolet/decompressors/lzx"
109
- require_relative "cabriolet/decompressors/quantum"
110
-
111
- require_relative "cabriolet/compressors/base"
112
- require_relative "cabriolet/compressors/lzss"
113
- require_relative "cabriolet/compressors/mszip"
114
- require_relative "cabriolet/compressors/lzx"
115
- require_relative "cabriolet/compressors/quantum"
116
-
117
- require_relative "cabriolet/cab/parser"
118
- require_relative "cabriolet/cab/decompressor"
119
- require_relative "cabriolet/cab/extractor"
120
- require_relative "cabriolet/cab/compressor"
121
-
122
- require_relative "cabriolet/chm/parser"
123
- require_relative "cabriolet/chm/decompressor"
124
- require_relative "cabriolet/chm/compressor"
125
-
126
- require_relative "cabriolet/szdd/parser"
127
- require_relative "cabriolet/szdd/decompressor"
128
- require_relative "cabriolet/szdd/compressor"
129
-
130
- require_relative "cabriolet/kwaj/parser"
131
- require_relative "cabriolet/kwaj/decompressor"
132
- require_relative "cabriolet/kwaj/compressor"
133
-
134
- require_relative "cabriolet/hlp/parser"
135
- require_relative "cabriolet/hlp/decompressor"
136
- require_relative "cabriolet/hlp/compressor"
137
-
138
- require_relative "cabriolet/hlp/winhelp/parser"
139
- require_relative "cabriolet/hlp/winhelp/zeck_lz77"
140
- require_relative "cabriolet/hlp/winhelp/decompressor"
141
- require_relative "cabriolet/hlp/winhelp/compressor"
142
-
143
- require_relative "cabriolet/lit/decompressor"
144
- require_relative "cabriolet/lit/compressor"
145
-
146
- require_relative "cabriolet/oab/decompressor"
147
- require_relative "cabriolet/oab/compressor"
148
-
149
- # Load new advanced features
150
- require_relative "cabriolet/format_detector"
151
- require_relative "cabriolet/extraction/base_extractor"
152
- require_relative "cabriolet/extraction/extractor"
153
- require_relative "cabriolet/streaming"
154
- require_relative "cabriolet/validator"
155
- require_relative "cabriolet/repairer"
156
- require_relative "cabriolet/modifier"
157
-
158
- # Load CLI (optional, for command-line usage)
159
- require_relative "cabriolet/cli"
160
-
161
- # Convenience methods at top level
162
- module Cabriolet
69
+ # Models
70
+ require_relative "cabriolet/models/cabinet"
71
+ require_relative "cabriolet/models/folder"
72
+ require_relative "cabriolet/models/folder_data"
73
+ require_relative "cabriolet/models/file"
74
+ require_relative "cabriolet/models/chm_header"
75
+ require_relative "cabriolet/models/chm_section"
76
+ require_relative "cabriolet/models/chm_file"
77
+ require_relative "cabriolet/models/szdd_header"
78
+ require_relative "cabriolet/models/kwaj_header"
79
+ require_relative "cabriolet/models/hlp_header"
80
+ require_relative "cabriolet/models/hlp_file"
81
+ require_relative "cabriolet/models/winhelp_header"
82
+ require_relative "cabriolet/models/lit_header"
83
+ require_relative "cabriolet/models/oab_header"
84
+
85
+ # Load errors first (needed by algorithm_factory)
86
+
87
+ # Load plugin system
88
+ require_relative "cabriolet/plugin"
89
+ require_relative "cabriolet/plugin_validator"
90
+ require_relative "cabriolet/plugin_manager"
91
+
92
+ # Load algorithm factory
93
+ require_relative "cabriolet/algorithm_factory"
94
+
95
+ # Load core components
96
+
97
+ require_relative "cabriolet/quantum_shared"
98
+
99
+ require_relative "cabriolet/huffman/tree"
100
+ require_relative "cabriolet/huffman/decoder"
101
+ require_relative "cabriolet/huffman/encoder"
102
+
103
+ require_relative "cabriolet/decompressors/base"
104
+ require_relative "cabriolet/decompressors/none"
105
+ require_relative "cabriolet/decompressors/lzss"
106
+ require_relative "cabriolet/decompressors/mszip"
107
+ require_relative "cabriolet/decompressors/lzx"
108
+ require_relative "cabriolet/decompressors/quantum"
109
+
110
+ require_relative "cabriolet/compressors/base"
111
+ require_relative "cabriolet/compressors/lzss"
112
+ require_relative "cabriolet/compressors/mszip"
113
+ require_relative "cabriolet/compressors/lzx"
114
+ require_relative "cabriolet/compressors/quantum"
115
+
116
+ require_relative "cabriolet/cab/parser"
117
+ require_relative "cabriolet/cab/decompressor"
118
+ require_relative "cabriolet/cab/extractor"
119
+ require_relative "cabriolet/cab/compressor"
120
+
121
+ require_relative "cabriolet/chm/parser"
122
+ require_relative "cabriolet/chm/decompressor"
123
+ require_relative "cabriolet/chm/compressor"
124
+
125
+ require_relative "cabriolet/szdd/parser"
126
+ require_relative "cabriolet/szdd/decompressor"
127
+ require_relative "cabriolet/szdd/compressor"
128
+
129
+ require_relative "cabriolet/kwaj/parser"
130
+ require_relative "cabriolet/kwaj/decompressor"
131
+ require_relative "cabriolet/kwaj/compressor"
132
+
133
+ require_relative "cabriolet/hlp/parser"
134
+ require_relative "cabriolet/hlp/decompressor"
135
+ require_relative "cabriolet/hlp/compressor"
136
+
137
+ require_relative "cabriolet/hlp/winhelp/parser"
138
+ require_relative "cabriolet/hlp/winhelp/zeck_lz77"
139
+ require_relative "cabriolet/hlp/winhelp/decompressor"
140
+ require_relative "cabriolet/hlp/winhelp/compressor"
141
+
142
+ require_relative "cabriolet/lit/decompressor"
143
+ require_relative "cabriolet/lit/compressor"
144
+
145
+ require_relative "cabriolet/oab/decompressor"
146
+ require_relative "cabriolet/oab/compressor"
147
+
148
+ # Load new advanced features
149
+ require_relative "cabriolet/format_detector"
150
+ require_relative "cabriolet/extraction/base_extractor"
151
+ require_relative "cabriolet/extraction/extractor"
152
+ require_relative "cabriolet/streaming"
153
+ require_relative "cabriolet/validator"
154
+ require_relative "cabriolet/repairer"
155
+ require_relative "cabriolet/modifier"
156
+
157
+ # Load CLI (optional, for command-line usage)
158
+ require_relative "cabriolet/cli"
159
+
160
+ # Convenience methods
163
161
  class << self
164
162
  # Open and parse an archive with automatic format detection
165
163
  #
@@ -171,7 +169,7 @@ module Cabriolet
171
169
  # @example
172
170
  # archive = Cabriolet.open('unknown.archive')
173
171
  # archive.files.each { |f| puts f.name }
174
- def open(path, **options)
172
+ def open(path, **)
175
173
  parser_class = FormatDetector.parser_for(path)
176
174
 
177
175
  unless parser_class
@@ -180,7 +178,7 @@ module Cabriolet
180
178
  "Unable to detect format or no parser available for: #{path} (detected: #{format || 'unknown'})"
181
179
  end
182
180
 
183
- parser_class.new(**options).parse(path)
181
+ parser_class.new(**).parse(path)
184
182
  end
185
183
 
186
184
  # Detect format of an archive file
@@ -211,9 +209,9 @@ module Cabriolet
211
209
  # @example Parallel extraction with 8 workers
212
210
  # stats = Cabriolet.extract('file.chm', 'docs/', workers: 8)
213
211
  # puts "Extracted #{stats[:extracted]} files"
214
- def extract(archive_path, output_dir, **options)
212
+ def extract(archive_path, output_dir, **)
215
213
  archive = open(archive_path)
216
- extractor = Extraction::Extractor.new(archive, output_dir, **options)
214
+ extractor = Extraction::Extractor.new(archive, output_dir, **)
217
215
  extractor.extract_all
218
216
  end
219
217
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cabriolet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-20 00:00:00.000000000 Z
11
+ date: 2026-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bindata