rubyzip 2.3.2 → 3.6.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 +538 -0
- data/LICENSE.md +24 -0
- data/README.md +235 -48
- 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 +29 -21
- data/lib/zip/crypto/aes_encryption.rb +123 -0
- data/lib/zip/crypto/decrypted_io.rb +27 -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 +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 +72 -7
- data/lib/zip/entry.rb +407 -241
- 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 +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 +99 -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 +11 -8
- 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 +66 -50
- 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 +28 -4
- 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 +82 -49
- data/TODO +0 -15
- data/lib/zip/extra_field/zip64_placeholder.rb +0 -15
metadata
CHANGED
|
@@ -1,125 +1,174 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubyzip
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.6.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
|
-
-
|
|
138
|
+
- lib/rubyzip.rb
|
|
99
139
|
- lib/zip.rb
|
|
100
140
|
- lib/zip/central_directory.rb
|
|
101
141
|
- lib/zip/compressor.rb
|
|
102
142
|
- lib/zip/constants.rb
|
|
143
|
+
- lib/zip/crypto/aes_encryption.rb
|
|
103
144
|
- lib/zip/crypto/decrypted_io.rb
|
|
104
145
|
- lib/zip/crypto/encryption.rb
|
|
105
146
|
- lib/zip/crypto/null_encryption.rb
|
|
106
147
|
- lib/zip/crypto/traditional_encryption.rb
|
|
107
148
|
- lib/zip/decompressor.rb
|
|
108
149
|
- lib/zip/deflater.rb
|
|
150
|
+
- lib/zip/dirtyable.rb
|
|
109
151
|
- lib/zip/dos_time.rb
|
|
110
152
|
- lib/zip/entry.rb
|
|
111
153
|
- lib/zip/entry_set.rb
|
|
112
154
|
- lib/zip/errors.rb
|
|
113
155
|
- lib/zip/extra_field.rb
|
|
156
|
+
- lib/zip/extra_field/aes.rb
|
|
114
157
|
- lib/zip/extra_field/generic.rb
|
|
115
158
|
- lib/zip/extra_field/ntfs.rb
|
|
116
159
|
- lib/zip/extra_field/old_unix.rb
|
|
117
160
|
- lib/zip/extra_field/universal_time.rb
|
|
118
161
|
- lib/zip/extra_field/unix.rb
|
|
162
|
+
- lib/zip/extra_field/unknown.rb
|
|
119
163
|
- lib/zip/extra_field/zip64.rb
|
|
120
|
-
- lib/zip/extra_field/zip64_placeholder.rb
|
|
121
164
|
- lib/zip/file.rb
|
|
165
|
+
- lib/zip/file_split.rb
|
|
122
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
|
|
123
172
|
- lib/zip/inflater.rb
|
|
124
173
|
- lib/zip/input_stream.rb
|
|
125
174
|
- lib/zip/ioextras.rb
|
|
@@ -134,6 +183,7 @@ files:
|
|
|
134
183
|
- lib/zip/streamable_directory.rb
|
|
135
184
|
- lib/zip/streamable_stream.rb
|
|
136
185
|
- lib/zip/version.rb
|
|
186
|
+
- rubyzip.gemspec
|
|
137
187
|
- samples/example.rb
|
|
138
188
|
- samples/example_filesystem.rb
|
|
139
189
|
- samples/example_recursive.rb
|
|
@@ -143,30 +193,14 @@ files:
|
|
|
143
193
|
- samples/zipfind.rb
|
|
144
194
|
homepage: http://github.com/rubyzip/rubyzip
|
|
145
195
|
licenses:
|
|
146
|
-
- BSD
|
|
196
|
+
- BSD-2-Clause
|
|
147
197
|
metadata:
|
|
148
198
|
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/
|
|
199
|
+
changelog_uri: https://github.com/rubyzip/rubyzip/blob/v3.6.0/Changelog.md
|
|
200
|
+
documentation_uri: https://www.rubydoc.info/gems/rubyzip/3.6.0
|
|
201
|
+
source_code_uri: https://github.com/rubyzip/rubyzip/tree/v3.6.0
|
|
152
202
|
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.
|
|
203
|
+
rubygems_mfa_required: 'true'
|
|
170
204
|
rdoc_options: []
|
|
171
205
|
require_paths:
|
|
172
206
|
- lib
|
|
@@ -174,15 +208,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
174
208
|
requirements:
|
|
175
209
|
- - ">="
|
|
176
210
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: '
|
|
211
|
+
version: '3.0'
|
|
178
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
213
|
requirements:
|
|
180
214
|
- - ">="
|
|
181
215
|
- !ruby/object:Gem::Version
|
|
182
216
|
version: '0'
|
|
183
217
|
requirements: []
|
|
184
|
-
rubygems_version:
|
|
185
|
-
signing_key:
|
|
218
|
+
rubygems_version: 4.0.17
|
|
186
219
|
specification_version: 4
|
|
187
220
|
summary: rubyzip is a ruby module for reading and writing zip files
|
|
188
221
|
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
|