rubyzip 1.2.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +64 -23
  3. data/Rakefile +3 -0
  4. data/lib/zip.rb +6 -3
  5. data/lib/zip/central_directory.rb +9 -5
  6. data/lib/zip/constants.rb +52 -0
  7. data/lib/zip/crypto/decrypted_io.rb +40 -0
  8. data/lib/zip/crypto/traditional_encryption.rb +9 -9
  9. data/lib/zip/decompressor.rb +19 -1
  10. data/lib/zip/dos_time.rb +12 -7
  11. data/lib/zip/entry.rb +69 -37
  12. data/lib/zip/entry_set.rb +2 -0
  13. data/lib/zip/errors.rb +2 -0
  14. data/lib/zip/extra_field.rb +11 -9
  15. data/lib/zip/extra_field/generic.rb +10 -9
  16. data/lib/zip/extra_field/ntfs.rb +4 -0
  17. data/lib/zip/extra_field/old_unix.rb +3 -1
  18. data/lib/zip/extra_field/universal_time.rb +42 -12
  19. data/lib/zip/extra_field/unix.rb +3 -1
  20. data/lib/zip/extra_field/zip64.rb +4 -2
  21. data/lib/zip/file.rb +115 -70
  22. data/lib/zip/filesystem.rb +193 -177
  23. data/lib/zip/inflater.rb +24 -36
  24. data/lib/zip/input_stream.rb +33 -26
  25. data/lib/zip/ioextras.rb +1 -1
  26. data/lib/zip/ioextras/abstract_input_stream.rb +19 -8
  27. data/lib/zip/ioextras/abstract_output_stream.rb +1 -1
  28. data/lib/zip/null_decompressor.rb +1 -9
  29. data/lib/zip/output_stream.rb +14 -5
  30. data/lib/zip/pass_thru_compressor.rb +2 -2
  31. data/lib/zip/pass_thru_decompressor.rb +13 -22
  32. data/lib/zip/streamable_directory.rb +3 -3
  33. data/lib/zip/streamable_stream.rb +6 -10
  34. data/lib/zip/version.rb +1 -1
  35. data/samples/example.rb +2 -2
  36. data/samples/example_filesystem.rb +1 -1
  37. data/samples/gtk_ruby_zip.rb +19 -19
  38. data/samples/qtzip.rb +6 -6
  39. data/samples/write_simple.rb +2 -4
  40. data/samples/zipfind.rb +23 -22
  41. metadata +32 -167
  42. data/test/basic_zip_file_test.rb +0 -60
  43. data/test/case_sensitivity_test.rb +0 -69
  44. data/test/central_directory_entry_test.rb +0 -69
  45. data/test/central_directory_test.rb +0 -100
  46. data/test/crypto/null_encryption_test.rb +0 -57
  47. data/test/crypto/traditional_encryption_test.rb +0 -80
  48. data/test/data/WarnInvalidDate.zip +0 -0
  49. data/test/data/file1.txt +0 -46
  50. data/test/data/file1.txt.deflatedData +0 -0
  51. data/test/data/file2.txt +0 -1504
  52. data/test/data/globTest.zip +0 -0
  53. data/test/data/globTest/foo.txt +0 -0
  54. data/test/data/globTest/foo/bar/baz/foo.txt +0 -0
  55. data/test/data/globTest/food.txt +0 -0
  56. data/test/data/gpbit3stored.zip +0 -0
  57. data/test/data/mimetype +0 -1
  58. data/test/data/notzippedruby.rb +0 -7
  59. data/test/data/ntfs.zip +0 -0
  60. data/test/data/oddExtraField.zip +0 -0
  61. data/test/data/path_traversal/Makefile +0 -10
  62. data/test/data/path_traversal/jwilk/README.md +0 -5
  63. data/test/data/path_traversal/jwilk/absolute1.zip +0 -0
  64. data/test/data/path_traversal/jwilk/absolute2.zip +0 -0
  65. data/test/data/path_traversal/jwilk/dirsymlink.zip +0 -0
  66. data/test/data/path_traversal/jwilk/dirsymlink2a.zip +0 -0
  67. data/test/data/path_traversal/jwilk/dirsymlink2b.zip +0 -0
  68. data/test/data/path_traversal/jwilk/relative0.zip +0 -0
  69. data/test/data/path_traversal/jwilk/relative2.zip +0 -0
  70. data/test/data/path_traversal/jwilk/symlink.zip +0 -0
  71. data/test/data/path_traversal/relative1.zip +0 -0
  72. data/test/data/path_traversal/tuzovakaoff/README.md +0 -3
  73. data/test/data/path_traversal/tuzovakaoff/absolutepath.zip +0 -0
  74. data/test/data/path_traversal/tuzovakaoff/symlink.zip +0 -0
  75. data/test/data/rubycode.zip +0 -0
  76. data/test/data/rubycode2.zip +0 -0
  77. data/test/data/test.xls +0 -0
  78. data/test/data/testDirectory.bin +0 -0
  79. data/test/data/zip64-sample.zip +0 -0
  80. data/test/data/zipWithDirs.zip +0 -0
  81. data/test/data/zipWithEncryption.zip +0 -0
  82. data/test/deflater_test.rb +0 -65
  83. data/test/encryption_test.rb +0 -42
  84. data/test/entry_set_test.rb +0 -163
  85. data/test/entry_test.rb +0 -154
  86. data/test/errors_test.rb +0 -35
  87. data/test/extra_field_test.rb +0 -76
  88. data/test/file_extract_directory_test.rb +0 -54
  89. data/test/file_extract_test.rb +0 -83
  90. data/test/file_permissions_test.rb +0 -65
  91. data/test/file_split_test.rb +0 -57
  92. data/test/file_test.rb +0 -601
  93. data/test/filesystem/dir_iterator_test.rb +0 -58
  94. data/test/filesystem/directory_test.rb +0 -139
  95. data/test/filesystem/file_mutating_test.rb +0 -87
  96. data/test/filesystem/file_nonmutating_test.rb +0 -508
  97. data/test/filesystem/file_stat_test.rb +0 -64
  98. data/test/gentestfiles.rb +0 -126
  99. data/test/inflater_test.rb +0 -14
  100. data/test/input_stream_test.rb +0 -182
  101. data/test/ioextras/abstract_input_stream_test.rb +0 -102
  102. data/test/ioextras/abstract_output_stream_test.rb +0 -106
  103. data/test/ioextras/fake_io_test.rb +0 -18
  104. data/test/local_entry_test.rb +0 -154
  105. data/test/output_stream_test.rb +0 -128
  106. data/test/pass_thru_compressor_test.rb +0 -30
  107. data/test/pass_thru_decompressor_test.rb +0 -14
  108. data/test/path_traversal_test.rb +0 -134
  109. data/test/samples/example_recursive_test.rb +0 -37
  110. data/test/settings_test.rb +0 -95
  111. data/test/test_helper.rb +0 -234
  112. data/test/unicode_file_names_and_comments_test.rb +0 -62
  113. data/test/zip64_full_test.rb +0 -51
  114. data/test/zip64_support_test.rb +0 -14
@@ -1,11 +1,11 @@
1
1
  module Zip
2
2
  class StreamableDirectory < Entry
3
- def initialize(zipfile, entry, srcPath = nil, permissionInt = nil)
3
+ def initialize(zipfile, entry, src_path = nil, permission = nil)
4
4
  super(zipfile, entry)
5
5
 
6
6
  @ftype = :directory
7
- entry.get_extra_attributes_from_path(srcPath) if srcPath
8
- @unix_perms = permissionInt if permissionInt
7
+ entry.get_extra_attributes_from_path(src_path) if src_path
8
+ @unix_perms = permission if permission
9
9
  end
10
10
  end
11
11
  end
@@ -1,13 +1,8 @@
1
1
  module Zip
2
- class StreamableStream < DelegateClass(Entry) # nodoc:all
2
+ class StreamableStream < DelegateClass(Entry) # :nodoc:all
3
3
  def initialize(entry)
4
4
  super(entry)
5
- dirname = if zipfile.is_a?(::String)
6
- ::File.dirname(zipfile)
7
- else
8
- nil
9
- end
10
- @temp_file = Tempfile.new(::File.basename(name), dirname)
5
+ @temp_file = Tempfile.new(::File.basename(name))
11
6
  @temp_file.binmode
12
7
  end
13
8
 
@@ -27,6 +22,7 @@ module Zip
27
22
  unless @temp_file.closed?
28
23
  raise StandardError, "cannot open entry for reading while its open for writing - #{name}"
29
24
  end
25
+
30
26
  @temp_file.open # reopens tempfile from top
31
27
  @temp_file.binmode
32
28
  if block_given?
@@ -40,9 +36,9 @@ module Zip
40
36
  end
41
37
  end
42
38
 
43
- def write_to_zip_output_stream(aZipOutputStream)
44
- aZipOutputStream.put_next_entry(self)
45
- get_input_stream { |is| ::Zip::IOExtras.copy_stream(aZipOutputStream, is) }
39
+ def write_to_zip_output_stream(output_stream)
40
+ output_stream.put_next_entry(self)
41
+ get_input_stream { |is| ::Zip::IOExtras.copy_stream(output_stream, is) }
46
42
  end
47
43
 
48
44
  def clean_up
@@ -1,3 +1,3 @@
1
1
  module Zip
2
- VERSION = '1.2.2'
2
+ VERSION = '2.3.0'
3
3
  end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $: << '../lib'
3
+ $LOAD_PATH << '../lib'
4
4
  system('zip example.zip example.rb gtk_ruby_zip.rb')
5
5
 
6
6
  require 'zip'
@@ -71,7 +71,7 @@ puts "Zip file splitted in #{part_zips_count} parts"
71
71
 
72
72
  # Track splitting an archive
73
73
  Zip::File.split('large_zip_file.zip', 1_048_576, true, 'part_zip_file') do |part_count, part_index, chunk_bytes, segment_bytes|
74
- puts "#{part_index} of #{part_count} part splitting: #{(chunk_bytes.to_f / segment_bytes.to_f * 100).to_i}%"
74
+ puts "#{part_index} of #{part_count} part splitting: #{(chunk_bytes.to_f / segment_bytes * 100).to_i}%"
75
75
  end
76
76
 
77
77
  # For other examples, look at zip.rb and ziptest.rb
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $: << '../lib'
3
+ $LOAD_PATH << '../lib'
4
4
 
5
5
  require 'zip/filesystem'
6
6
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $: << '../lib'
3
+ $LOAD_PATH << '../lib'
4
4
 
5
5
  $VERBOSE = true
6
6
 
@@ -18,14 +18,14 @@ class MainApp < Gtk::Window
18
18
  add(box)
19
19
 
20
20
  @zipfile = nil
21
- @buttonPanel = ButtonPanel.new
22
- @buttonPanel.openButton.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
21
+ @button_panel = ButtonPanel.new
22
+ @button_panel.open_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
23
23
  show_file_selector
24
24
  end
25
- @buttonPanel.extractButton.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
25
+ @button_panel.extract_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
26
26
  puts 'Not implemented!'
27
27
  end
28
- box.pack_start(@buttonPanel, false, false, 0)
28
+ box.pack_start(@button_panel, false, false, 0)
29
29
 
30
30
  sw = Gtk::ScrolledWindow.new
31
31
  sw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
@@ -42,27 +42,27 @@ class MainApp < Gtk::Window
42
42
  end
43
43
 
44
44
  class ButtonPanel < Gtk::HButtonBox
45
- attr_reader :openButton, :extractButton
45
+ attr_reader :open_button, :extract_button
46
46
  def initialize
47
47
  super
48
48
  set_layout(Gtk::BUTTONBOX_START)
49
49
  set_spacing(0)
50
- @openButton = Gtk::Button.new('Open archive')
51
- @extractButton = Gtk::Button.new('Extract entry')
52
- pack_start(@openButton)
53
- pack_start(@extractButton)
50
+ @open_button = Gtk::Button.new('Open archive')
51
+ @extract_button = Gtk::Button.new('Extract entry')
52
+ pack_start(@open_button)
53
+ pack_start(@extract_button)
54
54
  end
55
55
  end
56
56
 
57
57
  def show_file_selector
58
- @fileSelector = Gtk::FileSelection.new('Open zip file')
59
- @fileSelector.show
60
- @fileSelector.ok_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
61
- open_zip(@fileSelector.filename)
62
- @fileSelector.destroy
58
+ @file_selector = Gtk::FileSelection.new('Open zip file')
59
+ @file_selector.show
60
+ @file_selector.ok_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
61
+ open_zip(@file_selector.filename)
62
+ @file_selector.destroy
63
63
  end
64
- @fileSelector.cancel_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
65
- @fileSelector.destroy
64
+ @file_selector.cancel_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
65
+ @file_selector.destroy
66
66
  end
67
67
  end
68
68
 
@@ -77,8 +77,8 @@ class MainApp < Gtk::Window
77
77
  end
78
78
  end
79
79
 
80
- mainApp = MainApp.new
80
+ main_app = MainApp.new
81
81
 
82
- mainApp.show_all
82
+ main_app.show_all
83
83
 
84
84
  Gtk.main
@@ -2,7 +2,7 @@
2
2
 
3
3
  $VERBOSE = true
4
4
 
5
- $: << '../lib'
5
+ $LOAD_PATH << '../lib'
6
6
 
7
7
  require 'Qt'
8
8
  system('rbuic -o zipdialogui.rb zipdialogui.ui')
@@ -20,12 +20,12 @@ class ZipDialog < ZipDialogUI
20
20
  self, SLOT('extract_files()'))
21
21
  end
22
22
 
23
- def zipfile(&proc)
24
- Zip::File.open(@zip_filename, &proc)
23
+ def zipfile(&a_proc)
24
+ Zip::File.open(@zip_filename, &a_proc)
25
25
  end
26
26
 
27
- def each(&proc)
28
- Zip::File.foreach(@zip_filename, &proc)
27
+ def each(&a_proc)
28
+ Zip::File.foreach(@zip_filename, &a_proc)
29
29
  end
30
30
 
31
31
  def refresh
@@ -80,7 +80,7 @@ class ZipDialog < ZipDialogUI
80
80
  end
81
81
 
82
82
  unless ARGV[0]
83
- puts "usage: #{$0} zipname"
83
+ puts "usage: #{$PROGRAM_NAME} zipname"
84
84
  exit
85
85
  end
86
86
 
@@ -1,12 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $: << '../lib'
3
+ $LOAD_PATH << '../lib'
4
4
 
5
5
  require 'zip'
6
6
 
7
- include Zip
8
-
9
- OutputStream.open('simple.zip') do |zos|
7
+ ::Zip::OutputStream.open('simple.zip') do |zos|
10
8
  zos.put_next_entry 'entry.txt'
11
9
  zos.puts 'Hello world'
12
10
  end
@@ -2,36 +2,37 @@
2
2
 
3
3
  $VERBOSE = true
4
4
 
5
- $: << '../lib'
5
+ $LOAD_PATH << '../lib'
6
6
 
7
7
  require 'zip'
8
8
  require 'find'
9
9
 
10
10
  module Zip
11
11
  module ZipFind
12
- def self.find(path, zipFilePattern = /\.zip$/i)
13
- Find.find(path) do |fileName|
14
- yield(fileName)
15
- next unless zipFilePattern.match(fileName) && File.file?(fileName)
12
+ def self.find(path, zip_file_pattern = /\.zip$/i)
13
+ Find.find(path) do |filename|
14
+ yield(filename)
15
+ next unless zip_file_pattern.match(filename) && File.file?(filename)
16
+
16
17
  begin
17
- Zip::File.foreach(fileName) do |zipEntry|
18
- yield(fileName + File::SEPARATOR + zipEntry.to_s)
18
+ Zip::File.foreach(filename) do |entry|
19
+ yield(filename + File::SEPARATOR + entry.to_s)
19
20
  end
20
- rescue Errno::EACCES => ex
21
- puts ex
21
+ rescue Errno::EACCES => e
22
+ puts e
22
23
  end
23
24
  end
24
25
  end
25
26
 
26
- def self.find_file(path, fileNamePattern, zipFilePattern = /\.zip$/i)
27
- find(path, zipFilePattern) do |fileName|
28
- yield(fileName) if fileNamePattern.match(fileName)
27
+ def self.find_file(path, filename_pattern, zip_file_pattern = /\.zip$/i)
28
+ find(path, zip_file_pattern) do |filename|
29
+ yield(filename) if filename_pattern.match(filename)
29
30
  end
30
31
  end
31
32
  end
32
33
  end
33
34
 
34
- if $0 == __FILE__
35
+ if $PROGRAM_NAME == __FILE__
35
36
  module ZipFindConsoleRunner
36
37
  PATH_ARG_INDEX = 0
37
38
  FILENAME_PATTERN_ARG_INDEX = 1
@@ -41,24 +42,24 @@ if $0 == __FILE__
41
42
  check_args(args)
42
43
  Zip::ZipFind.find_file(args[PATH_ARG_INDEX],
43
44
  args[FILENAME_PATTERN_ARG_INDEX],
44
- args[ZIPFILE_PATTERN_ARG_INDEX]) do |fileName|
45
- report_entry_found fileName
45
+ args[ZIPFILE_PATTERN_ARG_INDEX]) do |filename|
46
+ report_entry_found filename
46
47
  end
47
48
  end
48
49
 
49
50
  def self.check_args(args)
50
- if args.size != 3
51
- usage
52
- exit
53
- end
51
+ return if args.size == 3
52
+
53
+ usage
54
+ exit
54
55
  end
55
56
 
56
57
  def self.usage
57
- puts "Usage: #{$0} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
58
+ puts "Usage: #{$PROGRAM_NAME} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
58
59
  end
59
60
 
60
- def self.report_entry_found(fileName)
61
- puts fileName
61
+ def self.report_entry_found(filename)
62
+ puts filename
62
63
  end
63
64
  end
64
65
 
metadata CHANGED
@@ -1,85 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyzip
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 2.3.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: 2018-08-31 00:00:00.000000000 Z
11
+ date: 2020-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: coveralls
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.3'
19
+ version: '0.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '10.3'
26
+ version: '0.7'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.10'
33
+ version: '5.4'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.10'
40
+ version: '5.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest
42
+ name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.4'
47
+ version: '0.10'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.4'
54
+ version: '0.10'
55
55
  - !ruby/object:Gem::Dependency
56
- name: coveralls
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.7'
61
+ version: '12.3'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 12.3.3
62
65
  type: :development
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
65
68
  requirements:
66
69
  - - "~>"
67
70
  - !ruby/object:Gem::Version
68
- version: '0.7'
71
+ version: '12.3'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 12.3.3
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rubocop
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 0.49.1
81
+ version: '0.79'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: 0.49.1
88
+ version: '0.79'
83
89
  description:
84
90
  email:
85
91
  - alex@simonov.me
@@ -94,6 +100,7 @@ files:
94
100
  - lib/zip/central_directory.rb
95
101
  - lib/zip/compressor.rb
96
102
  - lib/zip/constants.rb
103
+ - lib/zip/crypto/decrypted_io.rb
97
104
  - lib/zip/crypto/encryption.rb
98
105
  - lib/zip/crypto/null_encryption.rb
99
106
  - lib/zip/crypto/traditional_encryption.rb
@@ -134,83 +141,15 @@ files:
134
141
  - samples/qtzip.rb
135
142
  - samples/write_simple.rb
136
143
  - samples/zipfind.rb
137
- - test/basic_zip_file_test.rb
138
- - test/case_sensitivity_test.rb
139
- - test/central_directory_entry_test.rb
140
- - test/central_directory_test.rb
141
- - test/crypto/null_encryption_test.rb
142
- - test/crypto/traditional_encryption_test.rb
143
- - test/data/WarnInvalidDate.zip
144
- - test/data/file1.txt
145
- - test/data/file1.txt.deflatedData
146
- - test/data/file2.txt
147
- - test/data/globTest.zip
148
- - test/data/globTest/foo.txt
149
- - test/data/globTest/foo/bar/baz/foo.txt
150
- - test/data/globTest/food.txt
151
- - test/data/gpbit3stored.zip
152
- - test/data/mimetype
153
- - test/data/notzippedruby.rb
154
- - test/data/ntfs.zip
155
- - test/data/oddExtraField.zip
156
- - test/data/path_traversal/Makefile
157
- - test/data/path_traversal/jwilk/README.md
158
- - test/data/path_traversal/jwilk/absolute1.zip
159
- - test/data/path_traversal/jwilk/absolute2.zip
160
- - test/data/path_traversal/jwilk/dirsymlink.zip
161
- - test/data/path_traversal/jwilk/dirsymlink2a.zip
162
- - test/data/path_traversal/jwilk/dirsymlink2b.zip
163
- - test/data/path_traversal/jwilk/relative0.zip
164
- - test/data/path_traversal/jwilk/relative2.zip
165
- - test/data/path_traversal/jwilk/symlink.zip
166
- - test/data/path_traversal/relative1.zip
167
- - test/data/path_traversal/tuzovakaoff/README.md
168
- - test/data/path_traversal/tuzovakaoff/absolutepath.zip
169
- - test/data/path_traversal/tuzovakaoff/symlink.zip
170
- - test/data/rubycode.zip
171
- - test/data/rubycode2.zip
172
- - test/data/test.xls
173
- - test/data/testDirectory.bin
174
- - test/data/zip64-sample.zip
175
- - test/data/zipWithDirs.zip
176
- - test/data/zipWithEncryption.zip
177
- - test/deflater_test.rb
178
- - test/encryption_test.rb
179
- - test/entry_set_test.rb
180
- - test/entry_test.rb
181
- - test/errors_test.rb
182
- - test/extra_field_test.rb
183
- - test/file_extract_directory_test.rb
184
- - test/file_extract_test.rb
185
- - test/file_permissions_test.rb
186
- - test/file_split_test.rb
187
- - test/file_test.rb
188
- - test/filesystem/dir_iterator_test.rb
189
- - test/filesystem/directory_test.rb
190
- - test/filesystem/file_mutating_test.rb
191
- - test/filesystem/file_nonmutating_test.rb
192
- - test/filesystem/file_stat_test.rb
193
- - test/gentestfiles.rb
194
- - test/inflater_test.rb
195
- - test/input_stream_test.rb
196
- - test/ioextras/abstract_input_stream_test.rb
197
- - test/ioextras/abstract_output_stream_test.rb
198
- - test/ioextras/fake_io_test.rb
199
- - test/local_entry_test.rb
200
- - test/output_stream_test.rb
201
- - test/pass_thru_compressor_test.rb
202
- - test/pass_thru_decompressor_test.rb
203
- - test/path_traversal_test.rb
204
- - test/samples/example_recursive_test.rb
205
- - test/settings_test.rb
206
- - test/test_helper.rb
207
- - test/unicode_file_names_and_comments_test.rb
208
- - test/zip64_full_test.rb
209
- - test/zip64_support_test.rb
210
144
  homepage: http://github.com/rubyzip/rubyzip
211
145
  licenses:
212
146
  - BSD 2-Clause
213
- metadata: {}
147
+ metadata:
148
+ bug_tracker_uri: https://github.com/rubyzip/rubyzip/issues
149
+ changelog_uri: https://github.com/rubyzip/rubyzip/blob/v2.3.0/Changelog.md
150
+ documentation_uri: https://www.rubydoc.info/gems/rubyzip/2.3.0
151
+ source_code_uri: https://github.com/rubyzip/rubyzip/tree/v2.3.0
152
+ wiki_uri: https://github.com/rubyzip/rubyzip/wiki
214
153
  post_install_message:
215
154
  rdoc_options: []
216
155
  require_paths:
@@ -219,89 +158,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
158
  requirements:
220
159
  - - ">="
221
160
  - !ruby/object:Gem::Version
222
- version: 1.9.2
161
+ version: '2.4'
223
162
  required_rubygems_version: !ruby/object:Gem::Requirement
224
163
  requirements:
225
164
  - - ">="
226
165
  - !ruby/object:Gem::Version
227
166
  version: '0'
228
167
  requirements: []
229
- rubyforge_project:
230
- rubygems_version: 2.6.13
168
+ rubygems_version: 3.0.3
231
169
  signing_key:
232
170
  specification_version: 4
233
171
  summary: rubyzip is a ruby module for reading and writing zip files
234
- test_files:
235
- - test/file_permissions_test.rb
236
- - test/path_traversal_test.rb
237
- - test/ioextras/abstract_input_stream_test.rb
238
- - test/ioextras/fake_io_test.rb
239
- - test/ioextras/abstract_output_stream_test.rb
240
- - test/central_directory_test.rb
241
- - test/central_directory_entry_test.rb
242
- - test/crypto/traditional_encryption_test.rb
243
- - test/crypto/null_encryption_test.rb
244
- - test/input_stream_test.rb
245
- - test/file_extract_directory_test.rb
246
- - test/basic_zip_file_test.rb
247
- - test/inflater_test.rb
248
- - test/file_extract_test.rb
249
- - test/pass_thru_compressor_test.rb
250
- - test/filesystem/file_nonmutating_test.rb
251
- - test/filesystem/file_stat_test.rb
252
- - test/filesystem/file_mutating_test.rb
253
- - test/filesystem/dir_iterator_test.rb
254
- - test/filesystem/directory_test.rb
255
- - test/extra_field_test.rb
256
- - test/zip64_support_test.rb
257
- - test/local_entry_test.rb
258
- - test/samples/example_recursive_test.rb
259
- - test/entry_test.rb
260
- - test/case_sensitivity_test.rb
261
- - test/zip64_full_test.rb
262
- - test/pass_thru_decompressor_test.rb
263
- - test/settings_test.rb
264
- - test/gentestfiles.rb
265
- - test/encryption_test.rb
266
- - test/file_test.rb
267
- - test/deflater_test.rb
268
- - test/test_helper.rb
269
- - test/errors_test.rb
270
- - test/file_split_test.rb
271
- - test/data/file2.txt
272
- - test/data/testDirectory.bin
273
- - test/data/globTest/foo.txt
274
- - test/data/globTest/foo/bar/baz/foo.txt
275
- - test/data/globTest/food.txt
276
- - test/data/file1.txt
277
- - test/data/rubycode.zip
278
- - test/data/WarnInvalidDate.zip
279
- - test/data/zipWithDirs.zip
280
- - test/data/rubycode2.zip
281
- - test/data/mimetype
282
- - test/data/zipWithEncryption.zip
283
- - test/data/path_traversal/Makefile
284
- - test/data/path_traversal/relative1.zip
285
- - test/data/path_traversal/jwilk/dirsymlink.zip
286
- - test/data/path_traversal/jwilk/symlink.zip
287
- - test/data/path_traversal/jwilk/README.md
288
- - test/data/path_traversal/jwilk/relative2.zip
289
- - test/data/path_traversal/jwilk/relative0.zip
290
- - test/data/path_traversal/jwilk/absolute2.zip
291
- - test/data/path_traversal/jwilk/dirsymlink2b.zip
292
- - test/data/path_traversal/jwilk/absolute1.zip
293
- - test/data/path_traversal/jwilk/dirsymlink2a.zip
294
- - test/data/path_traversal/tuzovakaoff/symlink.zip
295
- - test/data/path_traversal/tuzovakaoff/README.md
296
- - test/data/path_traversal/tuzovakaoff/absolutepath.zip
297
- - test/data/oddExtraField.zip
298
- - test/data/gpbit3stored.zip
299
- - test/data/ntfs.zip
300
- - test/data/notzippedruby.rb
301
- - test/data/globTest.zip
302
- - test/data/file1.txt.deflatedData
303
- - test/data/test.xls
304
- - test/data/zip64-sample.zip
305
- - test/unicode_file_names_and_comments_test.rb
306
- - test/entry_set_test.rb
307
- - test/output_stream_test.rb
172
+ test_files: []