rubyzip 1.0.0 → 1.2.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.

Potentially problematic release.


This version of rubyzip might be problematic. Click here for more details.

Files changed (107) hide show
  1. checksums.yaml +6 -14
  2. data/README.md +173 -42
  3. data/Rakefile +10 -5
  4. data/TODO +0 -1
  5. data/lib/zip/central_directory.rb +55 -24
  6. data/lib/zip/compressor.rb +0 -0
  7. data/lib/zip/constants.rb +4 -2
  8. data/lib/zip/crypto/encryption.rb +11 -0
  9. data/lib/zip/crypto/null_encryption.rb +45 -0
  10. data/lib/zip/crypto/traditional_encryption.rb +99 -0
  11. data/lib/zip/decompressor.rb +2 -2
  12. data/lib/zip/deflater.rb +11 -6
  13. data/lib/zip/dos_time.rb +4 -5
  14. data/lib/zip/entry.rb +159 -97
  15. data/lib/zip/entry_set.rb +18 -18
  16. data/lib/zip/errors.rb +15 -6
  17. data/lib/zip/extra_field/generic.rb +8 -8
  18. data/lib/zip/extra_field/ntfs.rb +90 -0
  19. data/lib/zip/extra_field/old_unix.rb +44 -0
  20. data/lib/zip/extra_field/universal_time.rb +14 -14
  21. data/lib/zip/extra_field/unix.rb +8 -9
  22. data/lib/zip/extra_field/zip64.rb +44 -6
  23. data/lib/zip/extra_field/zip64_placeholder.rb +16 -0
  24. data/lib/zip/extra_field.rb +20 -8
  25. data/lib/zip/file.rb +126 -114
  26. data/lib/zip/filesystem.rb +140 -139
  27. data/lib/zip/inflater.rb +10 -9
  28. data/lib/zip/input_stream.rb +105 -80
  29. data/lib/zip/ioextras/abstract_input_stream.rb +15 -12
  30. data/lib/zip/ioextras/abstract_output_stream.rb +0 -2
  31. data/lib/zip/ioextras.rb +1 -3
  32. data/lib/zip/null_compressor.rb +2 -2
  33. data/lib/zip/null_decompressor.rb +4 -4
  34. data/lib/zip/null_input_stream.rb +2 -1
  35. data/lib/zip/output_stream.rb +57 -43
  36. data/lib/zip/pass_thru_compressor.rb +4 -4
  37. data/lib/zip/pass_thru_decompressor.rb +4 -5
  38. data/lib/zip/streamable_directory.rb +2 -2
  39. data/lib/zip/streamable_stream.rb +22 -13
  40. data/lib/zip/version.rb +1 -1
  41. data/lib/zip.rb +11 -2
  42. data/samples/example.rb +30 -40
  43. data/samples/example_filesystem.rb +16 -18
  44. data/samples/example_recursive.rb +35 -27
  45. data/samples/{gtkRubyzip.rb → gtk_ruby_zip.rb} +25 -27
  46. data/samples/qtzip.rb +19 -28
  47. data/samples/write_simple.rb +12 -13
  48. data/samples/zipfind.rb +29 -37
  49. data/test/basic_zip_file_test.rb +60 -0
  50. data/test/case_sensitivity_test.rb +69 -0
  51. data/test/central_directory_entry_test.rb +69 -0
  52. data/test/central_directory_test.rb +100 -0
  53. data/test/crypto/null_encryption_test.rb +53 -0
  54. data/test/crypto/traditional_encryption_test.rb +80 -0
  55. data/test/data/WarnInvalidDate.zip +0 -0
  56. data/test/data/file1.txt +46 -0
  57. data/test/data/file1.txt.deflatedData +0 -0
  58. data/test/data/file2.txt +1504 -0
  59. data/test/data/globTest/foo/bar/baz/foo.txt +0 -0
  60. data/test/data/globTest/foo.txt +0 -0
  61. data/test/data/globTest/food.txt +0 -0
  62. data/test/data/globTest.zip +0 -0
  63. data/test/data/mimetype +1 -0
  64. data/test/data/notzippedruby.rb +7 -0
  65. data/test/data/ntfs.zip +0 -0
  66. data/test/data/oddExtraField.zip +0 -0
  67. data/test/data/rubycode.zip +0 -0
  68. data/test/data/rubycode2.zip +0 -0
  69. data/test/data/test.xls +0 -0
  70. data/test/data/testDirectory.bin +0 -0
  71. data/test/data/zip64-sample.zip +0 -0
  72. data/test/data/zipWithDirs.zip +0 -0
  73. data/test/data/zipWithEncryption.zip +0 -0
  74. data/test/deflater_test.rb +65 -0
  75. data/test/encryption_test.rb +42 -0
  76. data/test/entry_set_test.rb +152 -0
  77. data/test/entry_test.rb +163 -0
  78. data/test/errors_test.rb +34 -0
  79. data/test/extra_field_test.rb +76 -0
  80. data/test/file_extract_directory_test.rb +54 -0
  81. data/test/file_extract_test.rb +83 -0
  82. data/test/file_permissions_test.rb +69 -0
  83. data/test/file_split_test.rb +57 -0
  84. data/test/file_test.rb +563 -0
  85. data/test/filesystem/dir_iterator_test.rb +58 -0
  86. data/test/filesystem/directory_test.rb +121 -0
  87. data/test/filesystem/file_mutating_test.rb +88 -0
  88. data/test/filesystem/file_nonmutating_test.rb +508 -0
  89. data/test/filesystem/file_stat_test.rb +64 -0
  90. data/test/gentestfiles.rb +122 -0
  91. data/test/inflater_test.rb +14 -0
  92. data/test/input_stream_test.rb +182 -0
  93. data/test/ioextras/abstract_input_stream_test.rb +102 -0
  94. data/test/ioextras/abstract_output_stream_test.rb +106 -0
  95. data/test/ioextras/fake_io_test.rb +18 -0
  96. data/test/local_entry_test.rb +154 -0
  97. data/test/output_stream_test.rb +128 -0
  98. data/test/pass_thru_compressor_test.rb +30 -0
  99. data/test/pass_thru_decompressor_test.rb +14 -0
  100. data/test/samples/example_recursive_test.rb +37 -0
  101. data/test/settings_test.rb +95 -0
  102. data/test/test_helper.rb +221 -0
  103. data/test/unicode_file_names_and_comments_test.rb +50 -0
  104. data/test/zip64_full_test.rb +51 -0
  105. data/test/zip64_support_test.rb +14 -0
  106. metadata +198 -22
  107. data/NEWS +0 -182
metadata CHANGED
@@ -1,15 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyzip
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Simonov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-29 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2016-02-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '10.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '10.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.7'
13
69
  description:
14
70
  email:
15
71
  - alex@simonov.me
@@ -17,34 +73,37 @@ executables: []
17
73
  extensions: []
18
74
  extra_rdoc_files: []
19
75
  files:
20
- - samples/example.rb
21
- - samples/example_filesystem.rb
22
- - samples/example_recursive.rb
23
- - samples/gtkRubyzip.rb
24
- - samples/qtzip.rb
25
- - samples/write_simple.rb
26
- - samples/zipfind.rb
76
+ - README.md
77
+ - Rakefile
78
+ - TODO
79
+ - lib/zip.rb
27
80
  - lib/zip/central_directory.rb
28
81
  - lib/zip/compressor.rb
29
82
  - lib/zip/constants.rb
83
+ - lib/zip/crypto/encryption.rb
84
+ - lib/zip/crypto/null_encryption.rb
85
+ - lib/zip/crypto/traditional_encryption.rb
30
86
  - lib/zip/decompressor.rb
31
87
  - lib/zip/deflater.rb
32
88
  - lib/zip/dos_time.rb
33
89
  - lib/zip/entry.rb
34
90
  - lib/zip/entry_set.rb
35
91
  - lib/zip/errors.rb
92
+ - lib/zip/extra_field.rb
36
93
  - lib/zip/extra_field/generic.rb
94
+ - lib/zip/extra_field/ntfs.rb
95
+ - lib/zip/extra_field/old_unix.rb
37
96
  - lib/zip/extra_field/universal_time.rb
38
97
  - lib/zip/extra_field/unix.rb
39
98
  - lib/zip/extra_field/zip64.rb
40
- - lib/zip/extra_field.rb
99
+ - lib/zip/extra_field/zip64_placeholder.rb
41
100
  - lib/zip/file.rb
42
101
  - lib/zip/filesystem.rb
43
102
  - lib/zip/inflater.rb
44
103
  - lib/zip/input_stream.rb
104
+ - lib/zip/ioextras.rb
45
105
  - lib/zip/ioextras/abstract_input_stream.rb
46
106
  - lib/zip/ioextras/abstract_output_stream.rb
47
- - lib/zip/ioextras.rb
48
107
  - lib/zip/null_compressor.rb
49
108
  - lib/zip/null_decompressor.rb
50
109
  - lib/zip/null_input_stream.rb
@@ -54,13 +113,73 @@ files:
54
113
  - lib/zip/streamable_directory.rb
55
114
  - lib/zip/streamable_stream.rb
56
115
  - lib/zip/version.rb
57
- - lib/zip.rb
58
- - README.md
59
- - NEWS
60
- - TODO
61
- - Rakefile
116
+ - samples/example.rb
117
+ - samples/example_filesystem.rb
118
+ - samples/example_recursive.rb
119
+ - samples/gtk_ruby_zip.rb
120
+ - samples/qtzip.rb
121
+ - samples/write_simple.rb
122
+ - samples/zipfind.rb
123
+ - test/basic_zip_file_test.rb
124
+ - test/case_sensitivity_test.rb
125
+ - test/central_directory_entry_test.rb
126
+ - test/central_directory_test.rb
127
+ - test/crypto/null_encryption_test.rb
128
+ - test/crypto/traditional_encryption_test.rb
129
+ - test/data/WarnInvalidDate.zip
130
+ - test/data/file1.txt
131
+ - test/data/file1.txt.deflatedData
132
+ - test/data/file2.txt
133
+ - test/data/globTest.zip
134
+ - test/data/globTest/foo.txt
135
+ - test/data/globTest/foo/bar/baz/foo.txt
136
+ - test/data/globTest/food.txt
137
+ - test/data/mimetype
138
+ - test/data/notzippedruby.rb
139
+ - test/data/ntfs.zip
140
+ - test/data/oddExtraField.zip
141
+ - test/data/rubycode.zip
142
+ - test/data/rubycode2.zip
143
+ - test/data/test.xls
144
+ - test/data/testDirectory.bin
145
+ - test/data/zip64-sample.zip
146
+ - test/data/zipWithDirs.zip
147
+ - test/data/zipWithEncryption.zip
148
+ - test/deflater_test.rb
149
+ - test/encryption_test.rb
150
+ - test/entry_set_test.rb
151
+ - test/entry_test.rb
152
+ - test/errors_test.rb
153
+ - test/extra_field_test.rb
154
+ - test/file_extract_directory_test.rb
155
+ - test/file_extract_test.rb
156
+ - test/file_permissions_test.rb
157
+ - test/file_split_test.rb
158
+ - test/file_test.rb
159
+ - test/filesystem/dir_iterator_test.rb
160
+ - test/filesystem/directory_test.rb
161
+ - test/filesystem/file_mutating_test.rb
162
+ - test/filesystem/file_nonmutating_test.rb
163
+ - test/filesystem/file_stat_test.rb
164
+ - test/gentestfiles.rb
165
+ - test/inflater_test.rb
166
+ - test/input_stream_test.rb
167
+ - test/ioextras/abstract_input_stream_test.rb
168
+ - test/ioextras/abstract_output_stream_test.rb
169
+ - test/ioextras/fake_io_test.rb
170
+ - test/local_entry_test.rb
171
+ - test/output_stream_test.rb
172
+ - test/pass_thru_compressor_test.rb
173
+ - test/pass_thru_decompressor_test.rb
174
+ - test/samples/example_recursive_test.rb
175
+ - test/settings_test.rb
176
+ - test/test_helper.rb
177
+ - test/unicode_file_names_and_comments_test.rb
178
+ - test/zip64_full_test.rb
179
+ - test/zip64_support_test.rb
62
180
  homepage: http://github.com/rubyzip/rubyzip
63
- licenses: []
181
+ licenses:
182
+ - BSD 2-Clause
64
183
  metadata: {}
65
184
  post_install_message:
66
185
  rdoc_options: []
@@ -68,18 +187,75 @@ require_paths:
68
187
  - lib
69
188
  required_ruby_version: !ruby/object:Gem::Requirement
70
189
  requirements:
71
- - - ! '>='
190
+ - - ">="
72
191
  - !ruby/object:Gem::Version
73
192
  version: 1.9.2
74
193
  required_rubygems_version: !ruby/object:Gem::Requirement
75
194
  requirements:
76
- - - ! '>='
195
+ - - ">="
77
196
  - !ruby/object:Gem::Version
78
197
  version: '0'
79
198
  requirements: []
80
199
  rubyforge_project:
81
- rubygems_version: 2.0.3
200
+ rubygems_version: 2.4.8
82
201
  signing_key:
83
202
  specification_version: 4
84
203
  summary: rubyzip is a ruby module for reading and writing zip files
85
- test_files: []
204
+ test_files:
205
+ - test/basic_zip_file_test.rb
206
+ - test/case_sensitivity_test.rb
207
+ - test/central_directory_entry_test.rb
208
+ - test/central_directory_test.rb
209
+ - test/crypto/null_encryption_test.rb
210
+ - test/crypto/traditional_encryption_test.rb
211
+ - test/data/file1.txt
212
+ - test/data/file1.txt.deflatedData
213
+ - test/data/file2.txt
214
+ - test/data/globTest/foo/bar/baz/foo.txt
215
+ - test/data/globTest/foo.txt
216
+ - test/data/globTest/food.txt
217
+ - test/data/globTest.zip
218
+ - test/data/mimetype
219
+ - test/data/notzippedruby.rb
220
+ - test/data/ntfs.zip
221
+ - test/data/oddExtraField.zip
222
+ - test/data/rubycode.zip
223
+ - test/data/rubycode2.zip
224
+ - test/data/test.xls
225
+ - test/data/testDirectory.bin
226
+ - test/data/WarnInvalidDate.zip
227
+ - test/data/zip64-sample.zip
228
+ - test/data/zipWithDirs.zip
229
+ - test/data/zipWithEncryption.zip
230
+ - test/deflater_test.rb
231
+ - test/encryption_test.rb
232
+ - test/entry_set_test.rb
233
+ - test/entry_test.rb
234
+ - test/errors_test.rb
235
+ - test/extra_field_test.rb
236
+ - test/file_extract_directory_test.rb
237
+ - test/file_extract_test.rb
238
+ - test/file_permissions_test.rb
239
+ - test/file_split_test.rb
240
+ - test/file_test.rb
241
+ - test/filesystem/dir_iterator_test.rb
242
+ - test/filesystem/directory_test.rb
243
+ - test/filesystem/file_mutating_test.rb
244
+ - test/filesystem/file_nonmutating_test.rb
245
+ - test/filesystem/file_stat_test.rb
246
+ - test/gentestfiles.rb
247
+ - test/inflater_test.rb
248
+ - test/input_stream_test.rb
249
+ - test/ioextras/abstract_input_stream_test.rb
250
+ - test/ioextras/abstract_output_stream_test.rb
251
+ - test/ioextras/fake_io_test.rb
252
+ - test/local_entry_test.rb
253
+ - test/output_stream_test.rb
254
+ - test/pass_thru_compressor_test.rb
255
+ - test/pass_thru_decompressor_test.rb
256
+ - test/samples/example_recursive_test.rb
257
+ - test/settings_test.rb
258
+ - test/test_helper.rb
259
+ - test/unicode_file_names_and_comments_test.rb
260
+ - test/zip64_full_test.rb
261
+ - test/zip64_support_test.rb
data/NEWS DELETED
@@ -1,182 +0,0 @@
1
- = Version 1.0.0
2
-
3
- Changed the API for gem. Now it can be used without require param in Gemfile.
4
- Added read-only support for Zip64 files.
5
- Added support for setting Unicode file names.
6
-
7
- = Version 0.9.9
8
-
9
- Added support for backslashes in zip files (generated by the default Windows
10
- zip packer for example) and comment sections with the comment length set to zero
11
- even though there is actually a comment.
12
-
13
- = Version 0.9.8
14
-
15
- Fixed: "Unitialized constant NullInputStream" error
16
-
17
- = Version 0.9.5
18
-
19
- Removed support for loading ruby in zip files (ziprequire.rb).
20
-
21
- = Version 0.9.4
22
-
23
- Changed ZipOutputStream.put_next_entry signature (API CHANGE!). Now
24
- allows comment, extra field and compression method to be specified.
25
-
26
- = Version 0.9.3
27
-
28
- Fixed: Added ZipEntry::name_encoding which retrieves the character
29
- encoding of the name and comment of the entry. Also added convenience
30
- methods ZipEntry::name_in(enc) and ZipEntry::comment_in(enc) for
31
- getting zip entry names and comments in a specified character
32
- encoding.
33
-
34
- = Version 0.9.2
35
-
36
- Fixed: Renaming an entry failed if the entry's new name was a
37
- different length than its old name. (Diego Barros)
38
-
39
- = Version 0.9.1
40
-
41
- Added symlink support and support for unix file permissions. Reduced
42
- memory usage during decompression.
43
-
44
- New methods ZipFile::[follow_symlinks, restore_times, restore_permissions, restore_ownership].
45
- New methods ZipEntry::unix_perms, ZipInputStream::eof?.
46
- Added documentation and test for new ZipFile::extract.
47
- Added some of the API suggestions from sf.net #1281314.
48
- Applied patch for sf.net bug #1446926.
49
- Applied patch for sf.net bug #1459902.
50
- Rework ZipEntry and delegate classes.
51
-
52
- = Version 0.5.12
53
-
54
- Fixed problem with writing binary content to a ZipFile in MS Windows.
55
-
56
- = Version 0.5.11
57
-
58
- Fixed name clash file method copy_stream from fileutils.rb. Fixed
59
- problem with references to constant CHUNK_SIZE.
60
- ZipInputStream/AbstractInputStream read is now buffered like ruby IO's
61
- read method, which means that read and gets etc can be mixed. The
62
- unbuffered read method has been renamed to sysread.
63
-
64
- = Version 0.5.10
65
-
66
- Fixed method name resolution problem with FileUtils::copy_stream and
67
- IOExtras::copy_stream.
68
-
69
- = Version 0.5.9
70
-
71
- Fixed serious memory consumption issue
72
-
73
- = Version 0.5.8
74
-
75
- Fixed install script.
76
-
77
- = Version 0.5.7
78
-
79
- install.rb no longer assumes it is being run from the toplevel source
80
- dir. Directory structure changed to reflect common ruby library
81
- project structure. Migrated from RubyUnit to Test::Unit format. Now
82
- uses Rake to build source packages and gems and run unit tests.
83
-
84
- = Version 0.5.6
85
-
86
- Fix for FreeBSD 4.9 which returns Errno::EFBIG instead of
87
- Errno::EINVAL for some invalid seeks. Fixed 'version needed to
88
- extract'-field incorrect in local headers.
89
-
90
- = Version 0.5.5
91
-
92
- Fix for a problem with writing zip files that concerns only ruby 1.8.1.
93
-
94
- = Version 0.5.4
95
-
96
- Significantly reduced memory footprint when modifying zip files.
97
-
98
- = Version 0.5.3
99
-
100
- Added optimization to avoid decompressing and recompressing individual
101
- entries when modifying a zip archive.
102
-
103
- = Version 0.5.2
104
-
105
- Fixed ZipFile corruption bug in ZipFile class. Added basic unix
106
- extra-field support.
107
-
108
- = Version 0.5.1
109
-
110
- Fixed ZipFile.get_output_stream bug.
111
-
112
- = Version 0.5.0
113
-
114
- List of changes:
115
- * Ruby 1.8.0 and ruby-zlib 0.6.0 compatibility
116
- * Changed method names from camelCase to rubys underscore style.
117
- * Installs to zip/ subdir instead of directly to site_ruby
118
- * Added ZipFile.directory and ZipFile.file - each method return an
119
- object that can be used like Dir and File only for the contents of the
120
- zip file.
121
- * Added sample application zipfind which works like Find.find, only
122
- Zip::ZipFind.find traverses into zip archives too.
123
-
124
- Bug fixes:
125
- * AbstractInputStream.each_line with non-default separator
126
-
127
-
128
- = Version 0.5.0a
129
-
130
- Source reorganized. Added ziprequire, which can be used to load ruby
131
- modules from a zip file, in a fashion similar to jar files in
132
- Java. Added gtkRubyzip, another sample application. Implemented
133
- ZipInputStream.lineno and ZipInputStream.rewind
134
-
135
- Bug fixes:
136
-
137
- * Read and write date and time information correctly for zip entries.
138
- * Fixed read() using separate buffer, causing mix of gets/readline/read to
139
- cause problems.
140
-
141
- = Version 0.4.2
142
-
143
- Performance optimizations. Test suite runs in half the time.
144
-
145
- = Version 0.4.1
146
-
147
- Windows compatibility fixes.
148
-
149
- = Version 0.4.0
150
-
151
- Zip::ZipFile is now mutable and provides a more convenient way of
152
- modifying zip archives than Zip::ZipOutputStream. Operations for
153
- adding, extracting, renaming, replacing and removing entries to zip
154
- archives are now available.
155
-
156
- Runs without warnings with -w switch.
157
-
158
- Install script install.rb added.
159
-
160
-
161
- = Version 0.3.1
162
-
163
- Rudimentary support for writing zip archives.
164
-
165
-
166
- = Version 0.2.2
167
-
168
- Fixed and extended unit test suite. Updated to work with ruby/zlib
169
- 0.5. It doesn't work with earlier versions of ruby/zlib.
170
-
171
-
172
- = Version 0.2.0
173
-
174
- Class ZipFile added. Where ZipInputStream is used to read the
175
- individual entries in a zip file, ZipFile reads the central directory
176
- in the zip archive, so you can get to any entry in the zip archive
177
- without having to skipping through all the preceeding entries.
178
-
179
-
180
- = Version 0.1.0
181
-
182
- First working version of ZipInputStream.