rubyzip 3.0.0.alpha → 3.0.0.rc2

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.
data/lib/zip/file.rb CHANGED
@@ -52,8 +52,9 @@ module Zip
52
52
  extend Forwardable
53
53
  extend FileSplit
54
54
 
55
- IO_METHODS = [:tell, :seek, :read, :eof, :close].freeze
55
+ IO_METHODS = [:tell, :seek, :read, :eof, :close].freeze # :nodoc:
56
56
 
57
+ # The name of this zip archive.
57
58
  attr_reader :name
58
59
 
59
60
  # default -> false.
@@ -69,28 +70,40 @@ module Zip
69
70
 
70
71
  # Opens a zip archive. Pass create: true to create
71
72
  # a new archive if it doesn't exist already.
72
- def initialize(path_or_io, create: false, buffer: false, **options)
73
+ def initialize(path_or_io, create: false, buffer: false,
74
+ restore_ownership: DEFAULT_RESTORE_OPTIONS[:restore_ownership],
75
+ restore_permissions: DEFAULT_RESTORE_OPTIONS[:restore_permissions],
76
+ restore_times: DEFAULT_RESTORE_OPTIONS[:restore_times],
77
+ compression_level: ::Zip.default_compression)
73
78
  super()
74
- options = DEFAULT_RESTORE_OPTIONS
75
- .merge(compression_level: ::Zip.default_compression)
76
- .merge(options)
79
+
77
80
  @name = path_or_io.respond_to?(:path) ? path_or_io.path : path_or_io
78
81
  @create = create ? true : false # allow any truthy value to mean true
79
82
 
80
83
  initialize_cdir(path_or_io, buffer: buffer)
81
84
 
82
- @restore_ownership = options[:restore_ownership]
83
- @restore_permissions = options[:restore_permissions]
84
- @restore_times = options[:restore_times]
85
- @compression_level = options[:compression_level]
85
+ @restore_ownership = restore_ownership
86
+ @restore_permissions = restore_permissions
87
+ @restore_times = restore_times
88
+ @compression_level = compression_level
86
89
  end
87
90
 
88
91
  class << self
89
92
  # Similar to ::new. If a block is passed the Zip::File object is passed
90
93
  # to the block and is automatically closed afterwards, just as with
91
94
  # ruby's builtin File::open method.
92
- def open(file_name, create: false, **options)
93
- zf = ::Zip::File.new(file_name, create: create, **options)
95
+ def open(file_name, create: false,
96
+ restore_ownership: DEFAULT_RESTORE_OPTIONS[:restore_ownership],
97
+ restore_permissions: DEFAULT_RESTORE_OPTIONS[:restore_permissions],
98
+ restore_times: DEFAULT_RESTORE_OPTIONS[:restore_times],
99
+ compression_level: ::Zip.default_compression)
100
+
101
+ zf = ::Zip::File.new(file_name, create: create,
102
+ restore_ownership: restore_ownership,
103
+ restore_permissions: restore_permissions,
104
+ restore_times: restore_times,
105
+ compression_level: compression_level)
106
+
94
107
  return zf unless block_given?
95
108
 
96
109
  begin
@@ -104,7 +117,12 @@ module Zip
104
117
  # stream, and outputs data to a buffer.
105
118
  # (This can be used to extract data from a
106
119
  # downloaded zip archive without first saving it to disk.)
107
- def open_buffer(io = ::StringIO.new, create: false, **options)
120
+ def open_buffer(io = ::StringIO.new, create: false,
121
+ restore_ownership: DEFAULT_RESTORE_OPTIONS[:restore_ownership],
122
+ restore_permissions: DEFAULT_RESTORE_OPTIONS[:restore_permissions],
123
+ restore_times: DEFAULT_RESTORE_OPTIONS[:restore_times],
124
+ compression_level: ::Zip.default_compression)
125
+
108
126
  unless IO_METHODS.map { |method| io.respond_to?(method) }.all? || io.kind_of?(String)
109
127
  raise 'Zip::File.open_buffer expects a String or IO-like argument' \
110
128
  "(responds to #{IO_METHODS.join(', ')}). Found: #{io.class}"
@@ -112,7 +130,12 @@ module Zip
112
130
 
113
131
  io = ::StringIO.new(io) if io.kind_of?(::String)
114
132
 
115
- zf = ::Zip::File.new(io, create: create, buffer: true, **options)
133
+ zf = ::Zip::File.new(io, create: create, buffer: true,
134
+ restore_ownership: restore_ownership,
135
+ restore_permissions: restore_permissions,
136
+ restore_times: restore_times,
137
+ compression_level: compression_level)
138
+
116
139
  return zf unless block_given?
117
140
 
118
141
  yield zf
@@ -278,7 +301,7 @@ module Zip
278
301
 
279
302
  # Write buffer write changes to buffer and return
280
303
  def write_buffer(io = ::StringIO.new)
281
- return unless commit_required?
304
+ return io unless commit_required?
282
305
 
283
306
  ::Zip::OutputStream.write_buffer(io) do |zos|
284
307
  @cdir.each { |e| e.write_to_zip_output_stream(zos) }
@@ -356,7 +379,7 @@ module Zip
356
379
  # This zip is probably a non-empty StringIO.
357
380
  @create = false
358
381
  @cdir.read_from_stream(path_or_io)
359
- elsif !@create && ::File.zero?(@name)
382
+ elsif !@create && ::File.empty?(@name)
360
383
  # A file exists, but it is empty, and we've said we're
361
384
  # NOT creating a new zip.
362
385
  raise Error, "File #{@name} has zero size. Did you mean to pass the create flag?"
@@ -7,13 +7,7 @@ module Zip
7
7
  DATA_BUFFER_SIZE = 8192
8
8
 
9
9
  def get_segment_size_for_split(segment_size)
10
- if MIN_SEGMENT_SIZE > segment_size
11
- MIN_SEGMENT_SIZE
12
- elsif MAX_SEGMENT_SIZE < segment_size
13
- MAX_SEGMENT_SIZE
14
- else
15
- segment_size
16
- end
10
+ segment_size.clamp(MIN_SEGMENT_SIZE, MAX_SEGMENT_SIZE)
17
11
  end
18
12
 
19
13
  def get_partial_zip_file_name(zip_file_name, partial_zip_file_name)
@@ -45,8 +45,8 @@ module Zip
45
45
  entries
46
46
  end
47
47
 
48
- def glob(*args, &block)
49
- @mapped_zip.glob(*args, &block)
48
+ def glob(...)
49
+ @mapped_zip.glob(...)
50
50
  end
51
51
 
52
52
  def foreach(directory_name)
@@ -74,7 +74,7 @@ module Zip
74
74
  private
75
75
 
76
76
  def expand_to_entry(path)
77
- expand_path(path)[1..-1]
77
+ expand_path(path)[1..]
78
78
  end
79
79
  end
80
80
  end
@@ -64,7 +64,7 @@ module Zip
64
64
  end
65
65
  end
66
66
 
67
- class File
67
+ class File # :nodoc:
68
68
  include FileSystem
69
69
  end
70
70
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ ##
3
4
  module Zip
4
5
  # InputStream is the basic class for reading zip entries in a
5
6
  # zip file. It is possible to create a InputStream object directly,
@@ -39,9 +40,8 @@ module Zip
39
40
  #
40
41
  # java.util.zip.ZipInputStream is the original inspiration for this
41
42
  # class.
42
-
43
43
  class InputStream
44
- CHUNK_SIZE = 32_768
44
+ CHUNK_SIZE = 32_768 # :nodoc:
45
45
 
46
46
  include ::Zip::IOExtras::AbstractInputStream
47
47
 
@@ -60,6 +60,7 @@ module Zip
60
60
  @complete_entry = nil
61
61
  end
62
62
 
63
+ # Close this InputStream. All further IO will raise an IOError.
63
64
  def close
64
65
  @archive_io.close
65
66
  end
@@ -78,7 +79,7 @@ module Zip
78
79
  open_entry
79
80
  end
80
81
 
81
- # Rewinds the stream to the beginning of the current entry
82
+ # Rewinds the stream to the beginning of the current entry.
82
83
  def rewind
83
84
  return if @current_entry.nil?
84
85
 
@@ -114,16 +115,11 @@ module Zip
114
115
  zio.close if zio
115
116
  end
116
117
  end
117
-
118
- def open_buffer(filename_or_io, offset: 0)
119
- warn 'open_buffer is deprecated!!! Use open instead!'
120
- ::Zip::InputStream.open(filename_or_io, offset: offset)
121
- end
122
118
  end
123
119
 
124
120
  protected
125
121
 
126
- def get_io(io_or_file, offset = 0)
122
+ def get_io(io_or_file, offset = 0) # :nodoc:
127
123
  if io_or_file.respond_to?(:seek)
128
124
  io = io_or_file.dup
129
125
  io.seek(offset, ::IO::SEEK_SET)
@@ -135,7 +131,7 @@ module Zip
135
131
  end
136
132
  end
137
133
 
138
- def open_entry
134
+ def open_entry # :nodoc:
139
135
  @current_entry = ::Zip::Entry.read_local_entry(@archive_io)
140
136
  return if @current_entry.nil?
141
137
 
@@ -144,8 +140,7 @@ module Zip
144
140
  'A password is required to decode this zip file'
145
141
  end
146
142
 
147
- if @current_entry.incomplete? && @current_entry.compressed_size == 0 \
148
- && !@complete_entry
143
+ if @current_entry.incomplete? && @current_entry.compressed_size == 0 && !@complete_entry
149
144
  raise StreamingError, @current_entry
150
145
  end
151
146
 
@@ -155,19 +150,19 @@ module Zip
155
150
  @current_entry
156
151
  end
157
152
 
158
- def get_decrypted_io
153
+ def get_decrypted_io # :nodoc:
159
154
  header = @archive_io.read(@decrypter.header_bytesize)
160
155
  @decrypter.reset!(header)
161
156
 
162
157
  ::Zip::DecryptedIo.new(@archive_io, @decrypter)
163
158
  end
164
159
 
165
- def get_decompressor
160
+ def get_decompressor # :nodoc:
166
161
  return ::Zip::NullDecompressor if @current_entry.nil?
167
162
 
168
163
  decompressed_size =
169
- if @current_entry.incomplete? && @current_entry.crc == 0 \
170
- && @current_entry.size == 0 && @complete_entry
164
+ if @current_entry.incomplete? && @current_entry.crc == 0 &&
165
+ @current_entry.size == 0 && @complete_entry
171
166
  @complete_entry.size
172
167
  else
173
168
  @current_entry.size
@@ -183,11 +178,11 @@ module Zip
183
178
  decompressor_class.new(@decrypted_io, decompressed_size)
184
179
  end
185
180
 
186
- def produce_input
181
+ def produce_input # :nodoc:
187
182
  @decompressor.read(CHUNK_SIZE)
188
183
  end
189
184
 
190
- def input_finished?
185
+ def input_finished? # :nodoc:
191
186
  @decompressor.eof
192
187
  end
193
188
  end
@@ -76,13 +76,13 @@ module Zip
76
76
  a_sep_string = "#{$INPUT_RECORD_SEPARATOR}#{$INPUT_RECORD_SEPARATOR}" if a_sep_string.empty?
77
77
 
78
78
  buffer_index = 0
79
- over_limit = (number_of_bytes && @output_buffer.bytesize >= number_of_bytes)
79
+ over_limit = number_of_bytes && @output_buffer.bytesize >= number_of_bytes
80
80
  while (match_index = @output_buffer.index(a_sep_string, buffer_index)).nil? && !over_limit
81
81
  buffer_index = [buffer_index, @output_buffer.bytesize - a_sep_string.bytesize].max
82
82
  return @output_buffer.empty? ? nil : flush if input_finished?
83
83
 
84
84
  @output_buffer << produce_input
85
- over_limit = (number_of_bytes && @output_buffer.bytesize >= number_of_bytes)
85
+ over_limit = number_of_bytes && @output_buffer.bytesize >= number_of_bytes
86
86
  end
87
87
  sep_index = [
88
88
  match_index + a_sep_string.bytesize,
data/lib/zip/ioextras.rb CHANGED
@@ -12,7 +12,7 @@ module Zip
12
12
  def copy_stream_n(ostream, istream, nbytes)
13
13
  toread = nbytes
14
14
  while toread > 0 && !istream.eof?
15
- tr = toread > CHUNK_SIZE ? CHUNK_SIZE : toread
15
+ tr = [toread, CHUNK_SIZE].min
16
16
  ostream.write(istream.read(tr, +''))
17
17
  toread -= tr
18
18
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'forwardable'
4
4
 
5
+ ##
5
6
  module Zip
6
7
  # ZipOutputStream is the basic class for writing zip files. It is
7
8
  # possible to create a ZipOutputStream object directly, passing
@@ -20,7 +21,6 @@ module Zip
20
21
  #
21
22
  # java.util.zip.ZipOutputStream is the original inspiration for this
22
23
  # class.
23
-
24
24
  class OutputStream
25
25
  extend Forwardable
26
26
  include ::Zip::IOExtras::AbstractOutputStream
@@ -47,10 +47,10 @@ module Zip
47
47
  @current_entry = nil
48
48
  end
49
49
 
50
- # Same as #initialize but if a block is passed the opened
51
- # stream is passed to the block and closed when the block
52
- # returns.
53
50
  class << self
51
+ # Same as #initialize but if a block is passed the opened
52
+ # stream is passed to the block and closed when the block
53
+ # returns.
54
54
  def open(file_name, encrypter: nil)
55
55
  return new(file_name) unless block_given?
56
56
 
@@ -114,7 +114,7 @@ module Zip
114
114
  @current_entry = new_entry
115
115
  end
116
116
 
117
- def copy_raw_entry(entry)
117
+ def copy_raw_entry(entry) # :nodoc:
118
118
  entry = entry.dup
119
119
  raise Error, 'zip stream is closed' if @closed
120
120
  raise Error, 'entry is not a ZipEntry' unless entry.kind_of?(Entry)
@@ -139,8 +139,8 @@ module Zip
139
139
  return unless @current_entry
140
140
 
141
141
  finish
142
- @current_entry.compressed_size = @output_stream.tell - \
143
- @current_entry.local_header_offset - \
142
+ @current_entry.compressed_size = @output_stream.tell -
143
+ @current_entry.local_header_offset -
144
144
  @current_entry.calculate_local_header_size
145
145
  @current_entry.size = @compressor.size
146
146
  @current_entry.crc = @compressor.crc
@@ -185,7 +185,7 @@ module Zip
185
185
 
186
186
  protected
187
187
 
188
- def finish
188
+ def finish # :nodoc:
189
189
  @compressor.finish
190
190
  end
191
191
 
data/lib/zip/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zip
4
- VERSION = '3.0.0.alpha'
4
+ VERSION = '3.0.0.rc2' # :nodoc:
5
5
  end
data/lib/zip.rb CHANGED
@@ -57,15 +57,15 @@ module Zip
57
57
  restore_ownership: false,
58
58
  restore_permissions: true,
59
59
  restore_times: true
60
- }.freeze
60
+ }.freeze # :nodoc:
61
61
 
62
- def reset!
62
+ def reset! # :nodoc:
63
63
  @_ran_once = false
64
64
  @unicode_names = false
65
65
  @on_exists_proc = false
66
66
  @continue_on_exists_proc = false
67
67
  @sort_entries = false
68
- @default_compression = ::Zlib::DEFAULT_COMPRESSION
68
+ @default_compression = Zlib::DEFAULT_COMPRESSION
69
69
  @write_zip64_support = true
70
70
  @warn_invalid_date = true
71
71
  @case_insensitive_match = false
@@ -73,6 +73,7 @@ module Zip
73
73
  @validate_entry_sizes = true
74
74
  end
75
75
 
76
+ # Set options for RubyZip in one block.
76
77
  def setup
77
78
  yield self unless @_ran_once
78
79
  @_ran_once = true
data/rubyzip.gemspec CHANGED
@@ -4,7 +4,7 @@ require_relative 'lib/zip/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'rubyzip'
7
- s.version = ::Zip::VERSION
7
+ s.version = Zip::VERSION
8
8
  s.authors = ['Robert Haines', 'John Lees-Miller', 'Alexander Simonov']
9
9
  s.email = [
10
10
  'hainesr@gmail.com', 'jdleesmiller@gmail.com', 'alex@simonov.me'
@@ -13,26 +13,27 @@ Gem::Specification.new do |s|
13
13
  s.platform = Gem::Platform::RUBY
14
14
  s.summary = 'rubyzip is a ruby module for reading and writing zip files'
15
15
  s.files = Dir.glob('{samples,lib}/**/*.rb') +
16
- %w[README.md Changelog.md Rakefile rubyzip.gemspec]
16
+ %w[LICENSE.md README.md Changelog.md Rakefile rubyzip.gemspec]
17
17
  s.require_paths = ['lib']
18
18
  s.license = 'BSD-2-Clause'
19
19
 
20
20
  s.metadata = {
21
- 'bug_tracker_uri' => 'https://github.com/rubyzip/rubyzip/issues',
22
- 'changelog_uri' => "https://github.com/rubyzip/rubyzip/blob/v#{s.version}/Changelog.md",
23
- 'documentation_uri' => "https://www.rubydoc.info/gems/rubyzip/#{s.version}",
24
- 'source_code_uri' => "https://github.com/rubyzip/rubyzip/tree/v#{s.version}",
25
- 'wiki_uri' => 'https://github.com/rubyzip/rubyzip/wiki'
21
+ 'bug_tracker_uri' => 'https://github.com/rubyzip/rubyzip/issues',
22
+ 'changelog_uri' => "https://github.com/rubyzip/rubyzip/blob/v#{s.version}/Changelog.md",
23
+ 'documentation_uri' => "https://www.rubydoc.info/gems/rubyzip/#{s.version}",
24
+ 'source_code_uri' => "https://github.com/rubyzip/rubyzip/tree/v#{s.version}",
25
+ 'wiki_uri' => 'https://github.com/rubyzip/rubyzip/wiki',
26
+ 'rubygems_mfa_required' => 'true'
26
27
  }
27
28
 
28
- s.required_ruby_version = '>= 2.5'
29
+ s.required_ruby_version = '>= 3.0'
29
30
 
30
- s.add_development_dependency 'minitest', '~> 5.4'
31
- s.add_development_dependency 'rake', '~> 12.3.3'
32
- s.add_development_dependency 'rdoc', '~> 6.4.0'
33
- s.add_development_dependency 'rubocop', '~> 1.12.0'
34
- s.add_development_dependency 'rubocop-performance', '~> 1.10.0'
35
- s.add_development_dependency 'rubocop-rake', '~> 0.5.0'
36
- s.add_development_dependency 'simplecov', '~> 0.18.0'
31
+ s.add_development_dependency 'minitest', '~> 5.25'
32
+ s.add_development_dependency 'rake', '~> 13.2'
33
+ s.add_development_dependency 'rdoc', '~> 6.11'
34
+ s.add_development_dependency 'rubocop', '~> 1.61.0'
35
+ s.add_development_dependency 'rubocop-performance', '~> 1.20.0'
36
+ s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
37
+ s.add_development_dependency 'simplecov', '~> 0.22.0'
37
38
  s.add_development_dependency 'simplecov-lcov', '~> 0.8'
38
39
  end
@@ -7,7 +7,7 @@ require 'zip/filesystem'
7
7
 
8
8
  EXAMPLE_ZIP = 'filesystem.zip'
9
9
 
10
- File.delete(EXAMPLE_ZIP) if File.exist?(EXAMPLE_ZIP)
10
+ FileUtils.rm_f(EXAMPLE_ZIP)
11
11
 
12
12
  Zip::File.open(EXAMPLE_ZIP, create: true) do |zf|
13
13
  zf.file.open('file1.txt', 'w') { |os| os.write 'first file1.txt' }
@@ -5,7 +5,7 @@ $LOAD_PATH << '../lib'
5
5
 
6
6
  require 'zip'
7
7
 
8
- ::Zip::OutputStream.open('simple.zip') do |zos|
8
+ Zip::OutputStream.open('simple.zip') do |zos|
9
9
  zos.put_next_entry 'entry.txt'
10
10
  zos.puts 'Hello world'
11
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyzip
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha
4
+ version: 3.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Haines
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-04-16 00:00:00.000000000 Z
13
+ date: 2025-02-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: minitest
@@ -18,98 +18,98 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '5.4'
21
+ version: '5.25'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '5.4'
28
+ version: '5.25'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: 12.3.3
35
+ version: '13.2'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: 12.3.3
42
+ version: '13.2'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rdoc
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 6.4.0
49
+ version: '6.11'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 6.4.0
56
+ version: '6.11'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rubocop
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 1.12.0
63
+ version: 1.61.0
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 1.12.0
70
+ version: 1.61.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rubocop-performance
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: 1.10.0
77
+ version: 1.20.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: 1.10.0
84
+ version: 1.20.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: rubocop-rake
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: 0.5.0
91
+ version: 0.6.0
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: 0.5.0
98
+ version: 0.6.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: simplecov
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: 0.18.0
105
+ version: 0.22.0
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: 0.18.0
112
+ version: 0.22.0
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: simplecov-lcov
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +134,7 @@ extensions: []
134
134
  extra_rdoc_files: []
135
135
  files:
136
136
  - Changelog.md
137
+ - LICENSE.md
137
138
  - README.md
138
139
  - Rakefile
139
140
  - lib/zip.rb
@@ -194,10 +195,11 @@ licenses:
194
195
  - BSD-2-Clause
195
196
  metadata:
196
197
  bug_tracker_uri: https://github.com/rubyzip/rubyzip/issues
197
- changelog_uri: https://github.com/rubyzip/rubyzip/blob/v3.0.0.alpha/Changelog.md
198
- documentation_uri: https://www.rubydoc.info/gems/rubyzip/3.0.0.alpha
199
- source_code_uri: https://github.com/rubyzip/rubyzip/tree/v3.0.0.alpha
198
+ changelog_uri: https://github.com/rubyzip/rubyzip/blob/v3.0.0.rc2/Changelog.md
199
+ documentation_uri: https://www.rubydoc.info/gems/rubyzip/3.0.0.rc2
200
+ source_code_uri: https://github.com/rubyzip/rubyzip/tree/v3.0.0.rc2
200
201
  wiki_uri: https://github.com/rubyzip/rubyzip/wiki
202
+ rubygems_mfa_required: 'true'
201
203
  post_install_message:
202
204
  rdoc_options: []
203
205
  require_paths:
@@ -206,14 +208,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
206
208
  requirements:
207
209
  - - ">="
208
210
  - !ruby/object:Gem::Version
209
- version: '2.5'
211
+ version: '3.0'
210
212
  required_rubygems_version: !ruby/object:Gem::Requirement
211
213
  requirements:
212
214
  - - ">"
213
215
  - !ruby/object:Gem::Version
214
216
  version: 1.3.1
215
217
  requirements: []
216
- rubygems_version: 3.3.23
218
+ rubygems_version: 3.4.1
217
219
  signing_key:
218
220
  specification_version: 4
219
221
  summary: rubyzip is a ruby module for reading and writing zip files