rubyzip 2.4.1 → 3.7.0
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 +549 -0
- data/LICENSE.md +24 -0
- data/README.md +250 -44
- data/Rakefile +15 -13
- data/lib/rubyzip.rb +3 -0
- data/lib/zip/central_directory.rb +194 -125
- data/lib/zip/compressor.rb +3 -1
- data/lib/zip/constants.rb +30 -21
- data/lib/zip/crypto/aes_encryption.rb +213 -0
- data/lib/zip/crypto/decrypted_io.rb +27 -15
- data/lib/zip/crypto/encryption.rb +13 -2
- data/lib/zip/crypto/null_encryption.rb +5 -13
- data/lib/zip/crypto/traditional_encryption.rb +13 -7
- data/lib/zip/decompressor.rb +4 -3
- data/lib/zip/deflater.rb +12 -8
- data/lib/zip/dirtyable.rb +32 -0
- data/lib/zip/dos_time.rb +64 -6
- data/lib/zip/entry.rb +432 -270
- data/lib/zip/entry_set.rb +11 -9
- data/lib/zip/errors.rb +152 -16
- data/lib/zip/extra_field/aes.rb +50 -0
- data/lib/zip/extra_field/generic.rb +10 -11
- data/lib/zip/extra_field/ntfs.rb +6 -4
- data/lib/zip/extra_field/old_unix.rb +5 -3
- data/lib/zip/extra_field/universal_time.rb +3 -1
- data/lib/zip/extra_field/unix.rb +7 -5
- data/lib/zip/extra_field/unknown.rb +35 -0
- data/lib/zip/extra_field/zip64.rb +19 -5
- data/lib/zip/extra_field.rb +25 -23
- data/lib/zip/file.rb +261 -262
- data/lib/zip/file_split.rb +91 -0
- data/lib/zip/filesystem/dir.rb +86 -0
- data/lib/zip/filesystem/directory_iterator.rb +48 -0
- data/lib/zip/filesystem/file.rb +263 -0
- data/lib/zip/filesystem/file_stat.rb +110 -0
- data/lib/zip/filesystem/zip_file_name_mapper.rb +81 -0
- data/lib/zip/filesystem.rb +27 -596
- data/lib/zip/inflater.rb +13 -10
- data/lib/zip/input_stream.rb +102 -61
- data/lib/zip/ioextras/abstract_input_stream.rb +156 -58
- data/lib/zip/ioextras/abstract_output_stream.rb +15 -3
- data/lib/zip/ioextras/fake_io.rb +39 -0
- data/lib/zip/ioextras.rb +12 -16
- data/lib/zip/null_compressor.rb +3 -1
- data/lib/zip/null_decompressor.rb +6 -3
- data/lib/zip/null_input_stream.rb +3 -1
- data/lib/zip/output_stream.rb +76 -64
- data/lib/zip/pass_thru_compressor.rb +6 -3
- data/lib/zip/pass_thru_decompressor.rb +12 -9
- data/lib/zip/streamable_directory.rb +3 -1
- data/lib/zip/streamable_stream.rb +4 -1
- data/lib/zip/version.rb +4 -1
- data/lib/zip.rb +28 -23
- data/rubyzip.gemspec +39 -0
- data/samples/example.rb +8 -3
- data/samples/example_filesystem.rb +3 -2
- data/samples/example_recursive.rb +3 -1
- data/samples/gtk_ruby_zip.rb +5 -3
- data/samples/qtzip.rb +7 -6
- data/samples/write_simple.rb +2 -1
- data/samples/zipfind.rb +1 -0
- metadata +88 -52
- data/TODO +0 -15
- data/lib/zip/extra_field/zip64_placeholder.rb +0 -15
metadata
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubyzip
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robert Haines
|
|
8
8
|
- John Lees-Miller
|
|
9
9
|
- Alexander Simonov
|
|
10
|
-
autorequire:
|
|
11
10
|
bindir: bin
|
|
12
11
|
cert_chain: []
|
|
13
|
-
date:
|
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
14
13
|
dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: minitest
|
|
@@ -18,63 +17,112 @@ dependencies:
|
|
|
18
17
|
requirements:
|
|
19
18
|
- - "~>"
|
|
20
19
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '5.
|
|
20
|
+
version: '5.25'
|
|
22
21
|
type: :development
|
|
23
22
|
prerelease: false
|
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
24
|
requirements:
|
|
26
25
|
- - "~>"
|
|
27
26
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: '5.
|
|
27
|
+
version: '5.25'
|
|
29
28
|
- !ruby/object:Gem::Dependency
|
|
30
|
-
name:
|
|
29
|
+
name: rake
|
|
31
30
|
requirement: !ruby/object:Gem::Requirement
|
|
32
31
|
requirements:
|
|
33
32
|
- - "~>"
|
|
34
33
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: '
|
|
34
|
+
version: '13.2'
|
|
36
35
|
type: :development
|
|
37
36
|
prerelease: false
|
|
38
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
38
|
requirements:
|
|
40
39
|
- - "~>"
|
|
41
40
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
41
|
+
version: '13.2'
|
|
43
42
|
- !ruby/object:Gem::Dependency
|
|
44
|
-
name:
|
|
43
|
+
name: rdoc
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - "~>"
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '6.11'
|
|
49
|
+
type: :development
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - "~>"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '6.11'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: rubocop
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: 1.80.2
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 1.80.2
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: rubocop-performance
|
|
45
72
|
requirement: !ruby/object:Gem::Requirement
|
|
46
73
|
requirements:
|
|
47
74
|
- - "~>"
|
|
48
75
|
- !ruby/object:Gem::Version
|
|
49
|
-
version:
|
|
50
|
-
|
|
76
|
+
version: 1.26.0
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - "~>"
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: 1.26.0
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: rubocop-rake
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
51
89
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
90
|
+
version: 0.7.1
|
|
53
91
|
type: :development
|
|
54
92
|
prerelease: false
|
|
55
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
56
94
|
requirements:
|
|
57
95
|
- - "~>"
|
|
58
96
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
60
|
-
|
|
97
|
+
version: 0.7.1
|
|
98
|
+
- !ruby/object:Gem::Dependency
|
|
99
|
+
name: simplecov
|
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - "~>"
|
|
61
103
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
104
|
+
version: 0.22.0
|
|
105
|
+
type: :development
|
|
106
|
+
prerelease: false
|
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
+
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: 0.22.0
|
|
63
112
|
- !ruby/object:Gem::Dependency
|
|
64
|
-
name:
|
|
113
|
+
name: simplecov-lcov
|
|
65
114
|
requirement: !ruby/object:Gem::Requirement
|
|
66
115
|
requirements:
|
|
67
116
|
- - "~>"
|
|
68
117
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '0.
|
|
118
|
+
version: '0.8'
|
|
70
119
|
type: :development
|
|
71
120
|
prerelease: false
|
|
72
121
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
122
|
requirements:
|
|
74
123
|
- - "~>"
|
|
75
124
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '0.
|
|
77
|
-
description:
|
|
125
|
+
version: '0.8'
|
|
78
126
|
email:
|
|
79
127
|
- hainesr@gmail.com
|
|
80
128
|
- jdleesmiller@gmail.com
|
|
@@ -83,38 +131,50 @@ executables: []
|
|
|
83
131
|
extensions: []
|
|
84
132
|
extra_rdoc_files: []
|
|
85
133
|
files:
|
|
134
|
+
- Changelog.md
|
|
135
|
+
- LICENSE.md
|
|
86
136
|
- README.md
|
|
87
137
|
- Rakefile
|
|
88
|
-
-
|
|
138
|
+
- lib/rubyzip.rb
|
|
89
139
|
- lib/zip.rb
|
|
90
140
|
- lib/zip/central_directory.rb
|
|
91
141
|
- lib/zip/compressor.rb
|
|
92
142
|
- lib/zip/constants.rb
|
|
143
|
+
- lib/zip/crypto/aes_encryption.rb
|
|
93
144
|
- lib/zip/crypto/decrypted_io.rb
|
|
94
145
|
- lib/zip/crypto/encryption.rb
|
|
95
146
|
- lib/zip/crypto/null_encryption.rb
|
|
96
147
|
- lib/zip/crypto/traditional_encryption.rb
|
|
97
148
|
- lib/zip/decompressor.rb
|
|
98
149
|
- lib/zip/deflater.rb
|
|
150
|
+
- lib/zip/dirtyable.rb
|
|
99
151
|
- lib/zip/dos_time.rb
|
|
100
152
|
- lib/zip/entry.rb
|
|
101
153
|
- lib/zip/entry_set.rb
|
|
102
154
|
- lib/zip/errors.rb
|
|
103
155
|
- lib/zip/extra_field.rb
|
|
156
|
+
- lib/zip/extra_field/aes.rb
|
|
104
157
|
- lib/zip/extra_field/generic.rb
|
|
105
158
|
- lib/zip/extra_field/ntfs.rb
|
|
106
159
|
- lib/zip/extra_field/old_unix.rb
|
|
107
160
|
- lib/zip/extra_field/universal_time.rb
|
|
108
161
|
- lib/zip/extra_field/unix.rb
|
|
162
|
+
- lib/zip/extra_field/unknown.rb
|
|
109
163
|
- lib/zip/extra_field/zip64.rb
|
|
110
|
-
- lib/zip/extra_field/zip64_placeholder.rb
|
|
111
164
|
- lib/zip/file.rb
|
|
165
|
+
- lib/zip/file_split.rb
|
|
112
166
|
- lib/zip/filesystem.rb
|
|
167
|
+
- lib/zip/filesystem/dir.rb
|
|
168
|
+
- lib/zip/filesystem/directory_iterator.rb
|
|
169
|
+
- lib/zip/filesystem/file.rb
|
|
170
|
+
- lib/zip/filesystem/file_stat.rb
|
|
171
|
+
- lib/zip/filesystem/zip_file_name_mapper.rb
|
|
113
172
|
- lib/zip/inflater.rb
|
|
114
173
|
- lib/zip/input_stream.rb
|
|
115
174
|
- lib/zip/ioextras.rb
|
|
116
175
|
- lib/zip/ioextras/abstract_input_stream.rb
|
|
117
176
|
- lib/zip/ioextras/abstract_output_stream.rb
|
|
177
|
+
- lib/zip/ioextras/fake_io.rb
|
|
118
178
|
- lib/zip/null_compressor.rb
|
|
119
179
|
- lib/zip/null_decompressor.rb
|
|
120
180
|
- lib/zip/null_input_stream.rb
|
|
@@ -124,6 +184,7 @@ files:
|
|
|
124
184
|
- lib/zip/streamable_directory.rb
|
|
125
185
|
- lib/zip/streamable_stream.rb
|
|
126
186
|
- lib/zip/version.rb
|
|
187
|
+
- rubyzip.gemspec
|
|
127
188
|
- samples/example.rb
|
|
128
189
|
- samples/example_filesystem.rb
|
|
129
190
|
- samples/example_recursive.rb
|
|
@@ -133,38 +194,14 @@ files:
|
|
|
133
194
|
- samples/zipfind.rb
|
|
134
195
|
homepage: http://github.com/rubyzip/rubyzip
|
|
135
196
|
licenses:
|
|
136
|
-
- BSD
|
|
197
|
+
- BSD-2-Clause
|
|
137
198
|
metadata:
|
|
138
199
|
bug_tracker_uri: https://github.com/rubyzip/rubyzip/issues
|
|
139
|
-
changelog_uri: https://github.com/rubyzip/rubyzip/blob/
|
|
140
|
-
documentation_uri: https://www.rubydoc.info/gems/rubyzip/
|
|
141
|
-
source_code_uri: https://github.com/rubyzip/rubyzip/tree/
|
|
200
|
+
changelog_uri: https://github.com/rubyzip/rubyzip/blob/v3.7.0/Changelog.md
|
|
201
|
+
documentation_uri: https://www.rubydoc.info/gems/rubyzip/3.7.0
|
|
202
|
+
source_code_uri: https://github.com/rubyzip/rubyzip/tree/v3.7.0
|
|
142
203
|
wiki_uri: https://github.com/rubyzip/rubyzip/wiki
|
|
143
204
|
rubygems_mfa_required: 'true'
|
|
144
|
-
post_install_message: |
|
|
145
|
-
RubyZip 3.0 is coming!
|
|
146
|
-
**********************
|
|
147
|
-
|
|
148
|
-
The public API of some Rubyzip classes has been modernized to use named
|
|
149
|
-
parameters for optional arguments. Please check your usage of the
|
|
150
|
-
following classes:
|
|
151
|
-
* `Zip::File`
|
|
152
|
-
* `Zip::Entry`
|
|
153
|
-
* `Zip::InputStream`
|
|
154
|
-
* `Zip::OutputStream`
|
|
155
|
-
* `Zip::DOSTime`
|
|
156
|
-
|
|
157
|
-
Run your test suite with the `RUBYZIP_V3_API_WARN` environment
|
|
158
|
-
variable set to see warnings about usage of the old API. This will
|
|
159
|
-
help you to identify any changes that you need to make to your code.
|
|
160
|
-
See https://github.com/rubyzip/rubyzip/wiki/Updating-to-version-3.x for
|
|
161
|
-
more information.
|
|
162
|
-
|
|
163
|
-
Please ensure that your Gemfiles and .gemspecs are suitably restrictive
|
|
164
|
-
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
|
|
165
|
-
See https://github.com/rubyzip/rubyzip for details. The Changelog also
|
|
166
|
-
lists other enhancements and bugfixes that have been implemented since
|
|
167
|
-
version 2.3.0.
|
|
168
205
|
rdoc_options: []
|
|
169
206
|
require_paths:
|
|
170
207
|
- lib
|
|
@@ -172,15 +209,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
172
209
|
requirements:
|
|
173
210
|
- - ">="
|
|
174
211
|
- !ruby/object:Gem::Version
|
|
175
|
-
version: '
|
|
212
|
+
version: '3.0'
|
|
176
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
214
|
requirements:
|
|
178
215
|
- - ">="
|
|
179
216
|
- !ruby/object:Gem::Version
|
|
180
217
|
version: '0'
|
|
181
218
|
requirements: []
|
|
182
|
-
rubygems_version:
|
|
183
|
-
signing_key:
|
|
219
|
+
rubygems_version: 4.0.17
|
|
184
220
|
specification_version: 4
|
|
185
221
|
summary: rubyzip is a ruby module for reading and writing zip files
|
|
186
222
|
test_files: []
|
data/TODO
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
* ZipInputStream: Support zip-files with trailing data descriptors
|
|
3
|
-
* Adjust rdoc stylesheet to advertise inherited methods if possible
|
|
4
|
-
* Suggestion: Add ZipFile/ZipInputStream example that demonstrates extracting all entries.
|
|
5
|
-
* Suggestion: ZipFile#extract destination should default to "."
|
|
6
|
-
* Suggestion: ZipEntry should have extract(), get_input_stream() methods etc
|
|
7
|
-
* (is buffering used anywhere with write?)
|
|
8
|
-
* Inflater.sysread should pass the buffer to produce_input.
|
|
9
|
-
* Implement ZipFsDir.glob
|
|
10
|
-
* ZipFile.checkIntegrity method
|
|
11
|
-
* non-MSDOS permission attributes
|
|
12
|
-
** See mail from Ned Konz to ruby-talk subj. "Re: SV: [ANN] Archive 0.2"
|
|
13
|
-
* Packager version, required unpacker version in zip headers
|
|
14
|
-
** See mail from Ned Konz to ruby-talk subj. "Re: SV: [ANN] Archive 0.2"
|
|
15
|
-
* implement storing attributes and ownership information
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module Zip
|
|
2
|
-
# placeholder to reserve space for a Zip64 extra information record, for the
|
|
3
|
-
# local file header only, that we won't know if we'll need until after
|
|
4
|
-
# we write the file data
|
|
5
|
-
class ExtraField::Zip64Placeholder < ExtraField::Generic
|
|
6
|
-
HEADER_ID = ['9999'].pack('H*') # this ID is used by other libraries such as .NET's Ionic.zip
|
|
7
|
-
register_map
|
|
8
|
-
|
|
9
|
-
def initialize(_binstr = nil); end
|
|
10
|
-
|
|
11
|
-
def pack_for_local
|
|
12
|
-
"\x00" * 16
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|