zip_tricks 4.3.0 → 4.4.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/IMPLEMENTATION_DETAILS.md +4 -5
- data/Rakefile +5 -1
- data/lib/zip_tricks/size_estimator.rb +10 -0
- data/lib/zip_tricks/streamer.rb +12 -2
- data/lib/zip_tricks/streamer/entry.rb +1 -0
- data/lib/zip_tricks/version.rb +1 -1
- data/lib/zip_tricks/zip_writer.rb +16 -4
- data/testing/generate_test_files.rb +10 -0
- data/testing/test-report-2017-04-2.txt +168 -0
- data/zip_tricks.gemspec +1 -1
- metadata +5 -6
- data/testing/test-report.txt +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b0120891ce2e0dd56729a82b77e629ccef17370
|
4
|
+
data.tar.gz: 1b991e7fed1e10bc6ea477d43bc833913b0092ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76588911904aaa0384621f418215dfe9dc0b7025cccd27ba49ce0260809aed3623240d6859b62f86a4c1a9994ac38a60ca354e770fe87af5a52a5c05970661c9
|
7
|
+
data.tar.gz: b7ffc3a65e09750a8a1458f73329690df3401550b5e31cb1d573c20a807f0f46ba60f21de817281b22201f954e9dc4df5012abbf148cf08db7aa2b213ac1a427
|
data/IMPLEMENTATION_DETAILS.md
CHANGED
@@ -91,8 +91,7 @@ https://commons.apache.org/proper/commons-compress/zip.html
|
|
91
91
|
|
92
92
|
## Directory support
|
93
93
|
|
94
|
-
ZIP
|
95
|
-
|
96
|
-
automatically create the `docs` directory if it doesn't exist already.
|
97
|
-
|
98
|
-
that functionality - so it is also omitted.
|
94
|
+
ZIP offers the possibility to store empty directories (folders). The directories that contain files, however, get
|
95
|
+
created automatically at unarchive time. If you store a file, called, say, `docs/item.doc` then the unarchiver will
|
96
|
+
automatically create the `docs` directory if it doesn't exist already. So you need to use the directory creation
|
97
|
+
methods only if you do not have any files in those directories.
|
data/Rakefile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rspec/core/rake_task"
|
3
|
+
require 'yard'
|
3
4
|
|
4
|
-
|
5
|
+
YARD::Rake::YardocTask.new(:doc) do |t|
|
6
|
+
t.files = ['lib/**/*.rb', 'README.md', 'LICENSE.txt', 'IMPLEMENTATION_DETAILS.md']
|
7
|
+
end
|
5
8
|
|
9
|
+
RSpec::Core::RakeTask.new(:spec)
|
6
10
|
task :default => :spec
|
@@ -61,4 +61,14 @@ class ZipTricks::SizeEstimator
|
|
61
61
|
@streamer.write_data_descriptor_for_last_entry if udd
|
62
62
|
self
|
63
63
|
end
|
64
|
+
|
65
|
+
# Add an empty directory to the archive.
|
66
|
+
#
|
67
|
+
# @param dirname [String] the name of the directory
|
68
|
+
# @return self
|
69
|
+
def add_empty_directory_entry(dirname:)
|
70
|
+
@streamer.add_file_and_write_local_header(filename: "#{dirname}" + "/", crc32: 0, storage_mode: 8,
|
71
|
+
compressed_size: 0, uncompressed_size: 0)
|
72
|
+
self
|
73
|
+
end
|
64
74
|
end
|
data/lib/zip_tricks/streamer.rb
CHANGED
@@ -158,6 +158,16 @@ class ZipTricks::Streamer
|
|
158
158
|
@out.tell
|
159
159
|
end
|
160
160
|
|
161
|
+
# Adds an empty directory to the archive with a size of 0 and permissions of 755.
|
162
|
+
#
|
163
|
+
# @param dirname [String] the name of the directory in the archive
|
164
|
+
# @return [Fixnum] the offset the output IO is at after writing the entry header
|
165
|
+
def add_empty_directory(dirname:)
|
166
|
+
add_file_and_write_local_header(filename: "#{dirname}" + "/", crc32: 0, storage_mode: STORED,
|
167
|
+
compressed_size: 0, uncompressed_size: 0)
|
168
|
+
@out.tell
|
169
|
+
end
|
170
|
+
|
161
171
|
# Opens the stream for a stored file in the archive, and yields a writer for that file to the block.
|
162
172
|
# Once the write completes, a data descriptor will be written with the actual compressed/uncompressed
|
163
173
|
# sizes and the CRC32 checksum.
|
@@ -202,7 +212,7 @@ class ZipTricks::Streamer
|
|
202
212
|
last_entry.uncompressed_size = uncomp
|
203
213
|
write_data_descriptor_for_last_entry
|
204
214
|
end
|
205
|
-
|
215
|
+
|
206
216
|
# Closes the archive. Writes the central directory, and switches the writer into
|
207
217
|
# a state where it can no longer be written to.
|
208
218
|
#
|
@@ -258,7 +268,7 @@ class ZipTricks::Streamer
|
|
258
268
|
@writer.write_local_file_header(io: @out, gp_flags: e.gp_flags, crc32: e.crc32, compressed_size: e.compressed_size,
|
259
269
|
uncompressed_size: e.uncompressed_size, mtime: e.mtime, filename: e.filename, storage_mode: e.storage_mode)
|
260
270
|
end
|
261
|
-
|
271
|
+
|
262
272
|
def write_data_descriptor_for_last_entry
|
263
273
|
e = @files.fetch(-1)
|
264
274
|
@writer.write_data_descriptor(io: @out, crc32: 0, compressed_size: e.compressed_size, uncompressed_size: e.uncompressed_size)
|
data/lib/zip_tricks/version.rb
CHANGED
@@ -39,6 +39,12 @@ class ZipTricks::ZipWriter
|
|
39
39
|
file_type_file = 010
|
40
40
|
external_attrs = (file_type_file << 12 | (unix_perms & 07777)) << 16
|
41
41
|
end
|
42
|
+
EMPTY_DIRECTORY_EXTERNAL_ATTRS = begin
|
43
|
+
# Applies permissions to an empty directory.
|
44
|
+
unix_perms = 0755
|
45
|
+
file_type_dir = 004
|
46
|
+
external_attrs = (file_type_file << 12 | (unix_perms & 07777)) << 16
|
47
|
+
end
|
42
48
|
MADE_BY_SIGNATURE = begin
|
43
49
|
# A combination of the VERSION_MADE_BY low byte and the OS type high byte
|
44
50
|
os_type = 3 # UNIX
|
@@ -120,11 +126,10 @@ class ZipTricks::ZipWriter
|
|
120
126
|
# @param uncompressed_size[Fixnum] The size of the file once extracted
|
121
127
|
# @param crc32[Fixnum] The CRC32 checksum of the file
|
122
128
|
# @param mtime[Time] the modification time to be recorded in the ZIP
|
123
|
-
# @param external_attrs[Fixnum] bit-packed external attributes (defaults to UNIX file with 0644 permissions set)
|
124
129
|
# @param gp_flags[Fixnum] bit-packed general purpose flags
|
125
130
|
# @return [void]
|
126
131
|
def write_central_directory_file_header(io:, local_file_header_location:, gp_flags:, storage_mode:, compressed_size:, uncompressed_size:, mtime:, crc32:,
|
127
|
-
filename
|
132
|
+
filename:)
|
128
133
|
# At this point if the header begins somewhere beyound 0xFFFFFFFF we _have_ to record the offset
|
129
134
|
# of the local file header as a zip64 extra field, so we give up, give in, you loose, love will always win...
|
130
135
|
add_zip64 = (local_file_header_location > FOUR_BYTE_MAX_UINT) ||
|
@@ -137,7 +142,7 @@ class ZipTricks::ZipWriter
|
|
137
142
|
else
|
138
143
|
io << [VERSION_NEEDED_TO_EXTRACT].pack(C_v) # version needed to extract 2 bytes
|
139
144
|
end
|
140
|
-
|
145
|
+
|
141
146
|
io << [gp_flags].pack(C_v) # general purpose bit flag 2 bytes
|
142
147
|
io << [storage_mode].pack(C_v) # compression method 2 bytes
|
143
148
|
io << [to_binary_dos_time(mtime)].pack(C_v) # last mod file time 2 bytes
|
@@ -176,7 +181,14 @@ class ZipTricks::ZipWriter
|
|
176
181
|
io << [0].pack(C_v)
|
177
182
|
end
|
178
183
|
io << [0].pack(C_v) # internal file attributes 2 bytes
|
179
|
-
|
184
|
+
|
185
|
+
# Because the add_empty_directory method will create a directory with a trailing "/",
|
186
|
+
# this check can be used to assign proper permissions to the created directory.
|
187
|
+
if filename.end_with?("/")
|
188
|
+
io << [EMPTY_DIRECTORY_EXTERNAL_ATTRS].pack(C_V)
|
189
|
+
else
|
190
|
+
io << [DEFAULT_EXTERNAL_ATTRS].pack(C_V) # external file attributes 4 bytes
|
191
|
+
end
|
180
192
|
|
181
193
|
if add_zip64 # relative offset of local header 4 bytes
|
182
194
|
io << [FOUR_BYTE_MAX_UINT].pack(C_V)
|
@@ -8,6 +8,16 @@ build_test "Two small stored files" do |zip|
|
|
8
8
|
zip << $image_file
|
9
9
|
end
|
10
10
|
|
11
|
+
build_test "Two small stored files and an empty directory" do |zip|
|
12
|
+
zip.add_stored_entry(filename: 'text.txt', size: $war_and_peace.bytesize, crc32: $war_and_peace_crc)
|
13
|
+
zip << $war_and_peace
|
14
|
+
|
15
|
+
zip.add_stored_entry(filename: 'image.jpg', size: $image_file.bytesize, crc32: $image_file_crc)
|
16
|
+
zip << $image_file
|
17
|
+
|
18
|
+
zip.add_empty_directory(dirname: "Chekov")
|
19
|
+
end
|
20
|
+
|
11
21
|
build_test "Filename with diacritics" do |zip|
|
12
22
|
zip.add_stored_entry(filename: 'Kungälv.txt', size: $war_and_peace.bytesize, crc32: $war_and_peace_crc)
|
13
23
|
zip << $war_and_peace
|
@@ -0,0 +1,168 @@
|
|
1
|
+
|
2
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
3
|
+
| OSX 10.11 - Archive Utility (builtin) |
|
4
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
5
|
+
| Test | Outcome |
|
6
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
7
|
+
| 01-two_small_stored_files.zip | Works |
|
8
|
+
| Two small stored files | |
|
9
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
10
|
+
| 02-two_small_stored_files_and_an_empty_directory.zip | Works |
|
11
|
+
| Two small stored files and an empty directory | |
|
12
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
13
|
+
| 03-filename_with_diacritics.zip | Works |
|
14
|
+
| Filename with diacritics | |
|
15
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
16
|
+
| 04-purely_utf8_filename.zip | Works |
|
17
|
+
| Purely UTF-8 filename | |
|
18
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
19
|
+
| 05-two_entries_larger_than_the_overall_zip64_offset.zip | Pending |
|
20
|
+
| Two entries larger than the overall Zip64 offset | |
|
21
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
22
|
+
| 06-one_entry_that_requires_zip64_and_a_tiny_entry_following_it.zip | Pending |
|
23
|
+
| One entry that requires Zip64 and a tiny entry following it | |
|
24
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
25
|
+
| 07-one_tiny_entry_followed_by_second_that_requires_zip64.zip | Pending |
|
26
|
+
| One tiny entry followed by second that requires Zip64 | |
|
27
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
28
|
+
| 08-two_entries_both_requiring_zip64.zip | Pending |
|
29
|
+
| Two entries both requiring Zip64 | |
|
30
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
31
|
+
| 09-two_stored_entries_using_data_descriptors.zip | Works |
|
32
|
+
| Two stored entries using data descriptors | |
|
33
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
34
|
+
| 10-one_entry_deflated_using_data_descriptors.zip | Works |
|
35
|
+
| One entry deflated using data descriptors | |
|
36
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
37
|
+
| 11-two_entries_larger_than_the_overall_zip64_offset_using_data_descriptors.zip | Pending |
|
38
|
+
| Two entries larger than the overall Zip64 offset using data descriptors | |
|
39
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
40
|
+
| 12-one_stored_entry_larger_than_zip64_threshold_using_data_descriptors.zip | Pending |
|
41
|
+
| One stored entry larger than Zip64 threshold using data descriptors | |
|
42
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
43
|
+
|
44
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
45
|
+
| OSX - The Unarchiver 3.10 |
|
46
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
47
|
+
| Test | Outcome |
|
48
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
49
|
+
| 01-two_small_stored_files.zip | Works |
|
50
|
+
| Two small stored files | |
|
51
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
52
|
+
| 02-two_small_stored_files_and_an_empty_directory.zip | Works |
|
53
|
+
| Two small stored files and an empty directory | |
|
54
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
55
|
+
| 03-filename_with_diacritics.zip | Works |
|
56
|
+
| Filename with diacritics | |
|
57
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
58
|
+
| 04-purely_utf8_filename.zip | Works |
|
59
|
+
| Purely UTF-8 filename | |
|
60
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
61
|
+
| 05-two_entries_larger_than_the_overall_zip64_offset.zip | Pending |
|
62
|
+
| Two entries larger than the overall Zip64 offset | |
|
63
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
64
|
+
| 06-one_entry_that_requires_zip64_and_a_tiny_entry_following_it.zip | Pending |
|
65
|
+
| One entry that requires Zip64 and a tiny entry following it | |
|
66
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
67
|
+
| 07-one_tiny_entry_followed_by_second_that_requires_zip64.zip | Pending |
|
68
|
+
| One tiny entry followed by second that requires Zip64 | |
|
69
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
70
|
+
| 08-two_entries_both_requiring_zip64.zip | Pending |
|
71
|
+
| Two entries both requiring Zip64 | |
|
72
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
73
|
+
| 09-two_stored_entries_using_data_descriptors.zip | Works |
|
74
|
+
| Two stored entries using data descriptors | |
|
75
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
76
|
+
| 10-one_entry_deflated_using_data_descriptors.zip | Works |
|
77
|
+
| One entry deflated using data descriptors | |
|
78
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
79
|
+
| 11-two_entries_larger_than_the_overall_zip64_offset_using_data_descriptors.zip | Pending |
|
80
|
+
| Two entries larger than the overall Zip64 offset using data descriptors | |
|
81
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
82
|
+
| 12-one_stored_entry_larger_than_zip64_threshold_using_data_descriptors.zip | Pending |
|
83
|
+
| One stored entry larger than Zip64 threshold using data descriptors | |
|
84
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
85
|
+
|
86
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
87
|
+
| Windows7 x64 - Builtin Explorer ZIP opener |
|
88
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
89
|
+
| Test | Outcome |
|
90
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
91
|
+
| 01-two_small_stored_files.zip | Pending |
|
92
|
+
| Two small stored files | |
|
93
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
94
|
+
| 02-two_small_stored_files_and_an_empty_directory.zip | Works |
|
95
|
+
| Two small stored files and an empty directory | |
|
96
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
97
|
+
| 03-filename_with_diacritics.zip | Pending |
|
98
|
+
| Filename with diacritics | |
|
99
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
100
|
+
| 04-purely_utf8_filename.zip | Pending |
|
101
|
+
| Purely UTF-8 filename | |
|
102
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
103
|
+
| 05-two_entries_larger_than_the_overall_zip64_offset.zip | Pending |
|
104
|
+
| Two entries larger than the overall Zip64 offset | |
|
105
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
106
|
+
| 06-one_entry_that_requires_zip64_and_a_tiny_entry_following_it.zip | Pending |
|
107
|
+
| One entry that requires Zip64 and a tiny entry following it | |
|
108
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
109
|
+
| 07-one_tiny_entry_followed_by_second_that_requires_zip64.zip | Pending |
|
110
|
+
| One tiny entry followed by second that requires Zip64 | |
|
111
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
112
|
+
| 08-two_entries_both_requiring_zip64.zip | Pending |
|
113
|
+
| Two entries both requiring Zip64 | |
|
114
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
115
|
+
| 09-two_stored_entries_using_data_descriptors.zip | Pending |
|
116
|
+
| Two stored entries using data descriptors | |
|
117
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
118
|
+
| 10-one_entry_deflated_using_data_descriptors.zip | Pending |
|
119
|
+
| One entry deflated using data descriptors | |
|
120
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
121
|
+
| 11-two_entries_larger_than_the_overall_zip64_offset_using_data_descriptors.zip | Pending |
|
122
|
+
| Two entries larger than the overall Zip64 offset using data descriptors | |
|
123
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
124
|
+
| 12-one_stored_entry_larger_than_zip64_threshold_using_data_descriptors.zip | Pending |
|
125
|
+
| One stored entry larger than Zip64 threshold using data descriptors | |
|
126
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
127
|
+
|
128
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
129
|
+
| Windows7 x64 - 7Zip 9.20 |
|
130
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
131
|
+
| Test | Outcome |
|
132
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
133
|
+
| 01-two_small_stored_files.zip | Pending |
|
134
|
+
| Two small stored files | |
|
135
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
136
|
+
| 02-two_small_stored_files_and_an_empty_directory.zip | Works |
|
137
|
+
| Two small stored files and an empty directory | |
|
138
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
139
|
+
| 03-filename_with_diacritics.zip | Pending |
|
140
|
+
| Filename with diacritics | |
|
141
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
142
|
+
| 04-purely_utf8_filename.zip | Pending |
|
143
|
+
| Purely UTF-8 filename | |
|
144
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
145
|
+
| 05-two_entries_larger_than_the_overall_zip64_offset.zip | Pending |
|
146
|
+
| Two entries larger than the overall Zip64 offset | |
|
147
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
148
|
+
| 06-one_entry_that_requires_zip64_and_a_tiny_entry_following_it.zip | Pending |
|
149
|
+
| One entry that requires Zip64 and a tiny entry following it | |
|
150
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
151
|
+
| 07-one_tiny_entry_followed_by_second_that_requires_zip64.zip | Pending |
|
152
|
+
| One tiny entry followed by second that requires Zip64 | |
|
153
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
154
|
+
| 08-two_entries_both_requiring_zip64.zip | Pending |
|
155
|
+
| Two entries both requiring Zip64 | |
|
156
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
157
|
+
| 09-two_stored_entries_using_data_descriptors.zip | Pending |
|
158
|
+
| Two stored entries using data descriptors | |
|
159
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
160
|
+
| 10-one_entry_deflated_using_data_descriptors.zip | Pending |
|
161
|
+
| One entry deflated using data descriptors | |
|
162
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
163
|
+
| 11-two_entries_larger_than_the_overall_zip64_offset_using_data_descriptors.zip | Pending |
|
164
|
+
| Two entries larger than the overall Zip64 offset using data descriptors | |
|
165
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
166
|
+
| 12-one_stored_entry_larger_than_zip64_threshold_using_data_descriptors.zip | Pending |
|
167
|
+
| One stored entry larger than Zip64 threshold using data descriptors | |
|
168
|
+
+--------------------------------------------------------------------------------+------------------------------------------------------------------+
|
data/zip_tricks.gemspec
CHANGED
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_development_dependency 'rake', '~> 10.4'
|
38
38
|
spec.add_development_dependency "rspec", "~> 3.2.0", '< 3.3'
|
39
39
|
spec.add_development_dependency 'coderay'
|
40
|
-
spec.add_development_dependency "yard", "~> 0.
|
40
|
+
spec.add_development_dependency "yard", "~> 0.9"
|
41
41
|
|
42
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zip_tricks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -134,14 +134,14 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: '0.
|
137
|
+
version: '0.9'
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '0.
|
144
|
+
version: '0.9'
|
145
145
|
description: Stream out ZIP files from Ruby
|
146
146
|
email:
|
147
147
|
- me@julik.nl
|
@@ -191,7 +191,7 @@ files:
|
|
191
191
|
- testing/support.rb
|
192
192
|
- testing/test-report-2016-07-28.txt
|
193
193
|
- testing/test-report-2016-12-12.txt
|
194
|
-
- testing/test-report.txt
|
194
|
+
- testing/test-report-2017-04-2.txt
|
195
195
|
- zip_tricks.gemspec
|
196
196
|
homepage: http://github.com/wetransfer/zip_tricks
|
197
197
|
licenses: []
|
@@ -218,4 +218,3 @@ signing_key:
|
|
218
218
|
specification_version: 4
|
219
219
|
summary: Stream out ZIP files from Ruby
|
220
220
|
test_files: []
|
221
|
-
has_rdoc:
|
data/testing/test-report.txt
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
+-------------------+-------------------+
|
3
|
-
| OSX 10.11 - Archive Utility (builtin) |
|
4
|
-
+-------------------+-------------------+
|
5
|
-
| Test | Outcome |
|
6
|
-
+-------------------+-------------------+
|
7
|
-
+-------------------+-------------------+
|
8
|
-
|
9
|
-
+-------------+-------------+
|
10
|
-
| OSX - The Unarchiver 3.10 |
|
11
|
-
+-------------+-------------+
|
12
|
-
| Test | Outcome |
|
13
|
-
+-------------+-------------+
|
14
|
-
+-------------+-------------+
|
15
|
-
|
16
|
-
+----------------------+----------------------+
|
17
|
-
| Windows7 x64 - Builtin Explorer ZIP opener |
|
18
|
-
+----------------------+----------------------+
|
19
|
-
| Test | Outcome |
|
20
|
-
+----------------------+----------------------+
|
21
|
-
+----------------------+----------------------+
|
22
|
-
|
23
|
-
+-------------+-------------+
|
24
|
-
| Windows7 x64 - 7Zip 9.20 |
|
25
|
-
+-------------+-------------+
|
26
|
-
| Test | Outcome |
|
27
|
-
+-------------+-------------+
|
28
|
-
+-------------+-------------+
|