rubyzip 2.3.2 → 3.3.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 +495 -0
- data/LICENSE.md +24 -0
- data/README.md +192 -44
- data/Rakefile +15 -13
- data/lib/zip/central_directory.rb +179 -125
- data/lib/zip/compressor.rb +3 -1
- data/lib/zip/constants.rb +29 -21
- data/lib/zip/crypto/aes_encryption.rb +120 -0
- data/lib/zip/crypto/decrypted_io.rb +21 -15
- data/lib/zip/crypto/encryption.rb +4 -2
- data/lib/zip/crypto/null_encryption.rb +5 -13
- data/lib/zip/crypto/traditional_encryption.rb +10 -6
- 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 +53 -6
- data/lib/zip/entry.rb +405 -240
- data/lib/zip/entry_set.rb +11 -9
- data/lib/zip/errors.rb +136 -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 +3 -1
- data/lib/zip/extra_field/universal_time.rb +3 -1
- data/lib/zip/extra_field/unix.rb +5 -3
- 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 +185 -226
- 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 +98 -47
- data/lib/zip/ioextras/abstract_input_stream.rb +146 -58
- data/lib/zip/ioextras/abstract_output_stream.rb +13 -3
- data/lib/zip/ioextras.rb +7 -7
- 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 +58 -48
- data/lib/zip/pass_thru_compressor.rb +3 -1
- 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 +25 -3
- 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 +81 -49
- data/TODO +0 -15
- data/lib/zip/extra_field/zip64_placeholder.rb +0 -15
metadata
CHANGED
|
@@ -1,125 +1,173 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubyzip
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
+
- Robert Haines
|
|
8
|
+
- John Lees-Miller
|
|
7
9
|
- Alexander Simonov
|
|
8
|
-
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
15
|
+
name: minitest
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
16
17
|
requirements:
|
|
17
18
|
- - "~>"
|
|
18
19
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
+
version: '5.25'
|
|
20
21
|
type: :development
|
|
21
22
|
prerelease: false
|
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
24
|
requirements:
|
|
24
25
|
- - "~>"
|
|
25
26
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
27
|
+
version: '5.25'
|
|
27
28
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
29
|
+
name: rake
|
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
32
|
- - "~>"
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
34
|
+
version: '13.2'
|
|
34
35
|
type: :development
|
|
35
36
|
prerelease: false
|
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
38
|
requirements:
|
|
38
39
|
- - "~>"
|
|
39
40
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
41
|
+
version: '13.2'
|
|
41
42
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
43
|
+
name: rdoc
|
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
|
44
45
|
requirements:
|
|
45
46
|
- - "~>"
|
|
46
47
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
48
|
+
version: '6.11'
|
|
48
49
|
type: :development
|
|
49
50
|
prerelease: false
|
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
52
|
requirements:
|
|
52
53
|
- - "~>"
|
|
53
54
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
55
|
+
version: '6.11'
|
|
55
56
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
57
|
+
name: rubocop
|
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
|
58
59
|
requirements:
|
|
59
60
|
- - "~>"
|
|
60
61
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
62
|
-
|
|
62
|
+
version: 1.80.2
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
63
68
|
- !ruby/object:Gem::Version
|
|
64
|
-
version:
|
|
69
|
+
version: 1.80.2
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: rubocop-performance
|
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - "~>"
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: 1.26.0
|
|
65
77
|
type: :development
|
|
66
78
|
prerelease: false
|
|
67
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
80
|
requirements:
|
|
69
81
|
- - "~>"
|
|
70
82
|
- !ruby/object:Gem::Version
|
|
71
|
-
version:
|
|
72
|
-
|
|
83
|
+
version: 1.26.0
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: rubocop-rake
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
73
89
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
90
|
+
version: 0.7.1
|
|
91
|
+
type: :development
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - "~>"
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: 0.7.1
|
|
75
98
|
- !ruby/object:Gem::Dependency
|
|
76
|
-
name:
|
|
99
|
+
name: simplecov
|
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - "~>"
|
|
103
|
+
- !ruby/object:Gem::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
|
|
112
|
+
- !ruby/object:Gem::Dependency
|
|
113
|
+
name: simplecov-lcov
|
|
77
114
|
requirement: !ruby/object:Gem::Requirement
|
|
78
115
|
requirements:
|
|
79
116
|
- - "~>"
|
|
80
117
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0.
|
|
118
|
+
version: '0.8'
|
|
82
119
|
type: :development
|
|
83
120
|
prerelease: false
|
|
84
121
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
122
|
requirements:
|
|
86
123
|
- - "~>"
|
|
87
124
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0.
|
|
89
|
-
description:
|
|
125
|
+
version: '0.8'
|
|
90
126
|
email:
|
|
127
|
+
- hainesr@gmail.com
|
|
128
|
+
- jdleesmiller@gmail.com
|
|
91
129
|
- alex@simonov.me
|
|
92
130
|
executables: []
|
|
93
131
|
extensions: []
|
|
94
132
|
extra_rdoc_files: []
|
|
95
133
|
files:
|
|
134
|
+
- Changelog.md
|
|
135
|
+
- LICENSE.md
|
|
96
136
|
- README.md
|
|
97
137
|
- Rakefile
|
|
98
|
-
- TODO
|
|
99
138
|
- lib/zip.rb
|
|
100
139
|
- lib/zip/central_directory.rb
|
|
101
140
|
- lib/zip/compressor.rb
|
|
102
141
|
- lib/zip/constants.rb
|
|
142
|
+
- lib/zip/crypto/aes_encryption.rb
|
|
103
143
|
- lib/zip/crypto/decrypted_io.rb
|
|
104
144
|
- lib/zip/crypto/encryption.rb
|
|
105
145
|
- lib/zip/crypto/null_encryption.rb
|
|
106
146
|
- lib/zip/crypto/traditional_encryption.rb
|
|
107
147
|
- lib/zip/decompressor.rb
|
|
108
148
|
- lib/zip/deflater.rb
|
|
149
|
+
- lib/zip/dirtyable.rb
|
|
109
150
|
- lib/zip/dos_time.rb
|
|
110
151
|
- lib/zip/entry.rb
|
|
111
152
|
- lib/zip/entry_set.rb
|
|
112
153
|
- lib/zip/errors.rb
|
|
113
154
|
- lib/zip/extra_field.rb
|
|
155
|
+
- lib/zip/extra_field/aes.rb
|
|
114
156
|
- lib/zip/extra_field/generic.rb
|
|
115
157
|
- lib/zip/extra_field/ntfs.rb
|
|
116
158
|
- lib/zip/extra_field/old_unix.rb
|
|
117
159
|
- lib/zip/extra_field/universal_time.rb
|
|
118
160
|
- lib/zip/extra_field/unix.rb
|
|
161
|
+
- lib/zip/extra_field/unknown.rb
|
|
119
162
|
- lib/zip/extra_field/zip64.rb
|
|
120
|
-
- lib/zip/extra_field/zip64_placeholder.rb
|
|
121
163
|
- lib/zip/file.rb
|
|
164
|
+
- lib/zip/file_split.rb
|
|
122
165
|
- lib/zip/filesystem.rb
|
|
166
|
+
- lib/zip/filesystem/dir.rb
|
|
167
|
+
- lib/zip/filesystem/directory_iterator.rb
|
|
168
|
+
- lib/zip/filesystem/file.rb
|
|
169
|
+
- lib/zip/filesystem/file_stat.rb
|
|
170
|
+
- lib/zip/filesystem/zip_file_name_mapper.rb
|
|
123
171
|
- lib/zip/inflater.rb
|
|
124
172
|
- lib/zip/input_stream.rb
|
|
125
173
|
- lib/zip/ioextras.rb
|
|
@@ -134,6 +182,7 @@ files:
|
|
|
134
182
|
- lib/zip/streamable_directory.rb
|
|
135
183
|
- lib/zip/streamable_stream.rb
|
|
136
184
|
- lib/zip/version.rb
|
|
185
|
+
- rubyzip.gemspec
|
|
137
186
|
- samples/example.rb
|
|
138
187
|
- samples/example_filesystem.rb
|
|
139
188
|
- samples/example_recursive.rb
|
|
@@ -143,30 +192,14 @@ files:
|
|
|
143
192
|
- samples/zipfind.rb
|
|
144
193
|
homepage: http://github.com/rubyzip/rubyzip
|
|
145
194
|
licenses:
|
|
146
|
-
- BSD
|
|
195
|
+
- BSD-2-Clause
|
|
147
196
|
metadata:
|
|
148
197
|
bug_tracker_uri: https://github.com/rubyzip/rubyzip/issues
|
|
149
|
-
changelog_uri: https://github.com/rubyzip/rubyzip/blob/
|
|
150
|
-
documentation_uri: https://www.rubydoc.info/gems/rubyzip/
|
|
151
|
-
source_code_uri: https://github.com/rubyzip/rubyzip/tree/
|
|
198
|
+
changelog_uri: https://github.com/rubyzip/rubyzip/blob/v3.3.0/Changelog.md
|
|
199
|
+
documentation_uri: https://www.rubydoc.info/gems/rubyzip/3.3.0
|
|
200
|
+
source_code_uri: https://github.com/rubyzip/rubyzip/tree/v3.3.0
|
|
152
201
|
wiki_uri: https://github.com/rubyzip/rubyzip/wiki
|
|
153
|
-
|
|
154
|
-
RubyZip 3.0 is coming!
|
|
155
|
-
**********************
|
|
156
|
-
|
|
157
|
-
The public API of some Rubyzip classes has been modernized to use named
|
|
158
|
-
parameters for optional arguments. Please check your usage of the
|
|
159
|
-
following classes:
|
|
160
|
-
* `Zip::File`
|
|
161
|
-
* `Zip::Entry`
|
|
162
|
-
* `Zip::InputStream`
|
|
163
|
-
* `Zip::OutputStream`
|
|
164
|
-
|
|
165
|
-
Please ensure that your Gemfiles and .gemspecs are suitably restrictive
|
|
166
|
-
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
|
|
167
|
-
See https://github.com/rubyzip/rubyzip for details. The Changelog also
|
|
168
|
-
lists other enhancements and bugfixes that have been implemented since
|
|
169
|
-
version 2.3.0.
|
|
202
|
+
rubygems_mfa_required: 'true'
|
|
170
203
|
rdoc_options: []
|
|
171
204
|
require_paths:
|
|
172
205
|
- lib
|
|
@@ -174,15 +207,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
174
207
|
requirements:
|
|
175
208
|
- - ">="
|
|
176
209
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: '
|
|
210
|
+
version: '3.0'
|
|
178
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
212
|
requirements:
|
|
180
213
|
- - ">="
|
|
181
214
|
- !ruby/object:Gem::Version
|
|
182
215
|
version: '0'
|
|
183
216
|
requirements: []
|
|
184
|
-
rubygems_version: 3.
|
|
185
|
-
signing_key:
|
|
217
|
+
rubygems_version: 3.7.2
|
|
186
218
|
specification_version: 4
|
|
187
219
|
summary: rubyzip is a ruby module for reading and writing zip files
|
|
188
220
|
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
|