rubyzip 0.9.1 → 2.3.2

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.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +354 -0
  3. data/Rakefile +15 -104
  4. data/TODO +0 -1
  5. data/lib/zip/central_directory.rb +212 -0
  6. data/lib/zip/compressor.rb +9 -0
  7. data/lib/zip/constants.rb +115 -0
  8. data/lib/zip/crypto/decrypted_io.rb +40 -0
  9. data/lib/zip/crypto/encryption.rb +11 -0
  10. data/lib/zip/crypto/null_encryption.rb +43 -0
  11. data/lib/zip/crypto/traditional_encryption.rb +99 -0
  12. data/lib/zip/decompressor.rb +31 -0
  13. data/lib/zip/deflater.rb +34 -0
  14. data/lib/zip/dos_time.rb +53 -0
  15. data/lib/zip/entry.rb +719 -0
  16. data/lib/zip/entry_set.rb +88 -0
  17. data/lib/zip/errors.rb +19 -0
  18. data/lib/zip/extra_field/generic.rb +44 -0
  19. data/lib/zip/extra_field/ntfs.rb +94 -0
  20. data/lib/zip/extra_field/old_unix.rb +46 -0
  21. data/lib/zip/extra_field/universal_time.rb +77 -0
  22. data/lib/zip/extra_field/unix.rb +39 -0
  23. data/lib/zip/extra_field/zip64.rb +70 -0
  24. data/lib/zip/extra_field/zip64_placeholder.rb +15 -0
  25. data/lib/zip/extra_field.rb +103 -0
  26. data/lib/zip/file.rb +468 -0
  27. data/lib/zip/filesystem.rb +643 -0
  28. data/lib/zip/inflater.rb +54 -0
  29. data/lib/zip/input_stream.rb +180 -0
  30. data/lib/zip/ioextras/abstract_input_stream.rb +122 -0
  31. data/lib/zip/ioextras/abstract_output_stream.rb +43 -0
  32. data/lib/zip/ioextras.rb +21 -140
  33. data/lib/zip/null_compressor.rb +15 -0
  34. data/lib/zip/null_decompressor.rb +19 -0
  35. data/lib/zip/null_input_stream.rb +10 -0
  36. data/lib/zip/output_stream.rb +198 -0
  37. data/lib/zip/pass_thru_compressor.rb +23 -0
  38. data/lib/zip/pass_thru_decompressor.rb +31 -0
  39. data/lib/zip/streamable_directory.rb +15 -0
  40. data/lib/zip/streamable_stream.rb +52 -0
  41. data/lib/zip/version.rb +3 -0
  42. data/lib/zip.rb +72 -0
  43. data/samples/example.rb +44 -32
  44. data/samples/example_filesystem.rb +16 -19
  45. data/samples/example_recursive.rb +54 -0
  46. data/samples/gtk_ruby_zip.rb +84 -0
  47. data/samples/qtzip.rb +25 -34
  48. data/samples/write_simple.rb +10 -13
  49. data/samples/zipfind.rb +38 -45
  50. metadata +182 -91
  51. data/ChangeLog +0 -1504
  52. data/NEWS +0 -144
  53. data/README +0 -72
  54. data/install.rb +0 -22
  55. data/lib/download_quizzes.rb +0 -119
  56. data/lib/quiz1/t/solutions/Bill Guindon/solitaire.rb +0 -205
  57. data/lib/quiz1/t/solutions/Carlos/solitaire.rb +0 -111
  58. data/lib/quiz1/t/solutions/Dennis Ranke/solitaire.rb +0 -111
  59. data/lib/quiz1/t/solutions/Florian Gross/solitaire.rb +0 -301
  60. data/lib/quiz1/t/solutions/Glen M. Lewis/solitaire.rb +0 -268
  61. data/lib/quiz1/t/solutions/James Edward Gray II/solitaire.rb +0 -132
  62. data/lib/quiz1/t/solutions/Jamis Buck/bin/main.rb +0 -13
  63. data/lib/quiz1/t/solutions/Jamis Buck/lib/cipher.rb +0 -230
  64. data/lib/quiz1/t/solutions/Jamis Buck/lib/cli.rb +0 -24
  65. data/lib/quiz1/t/solutions/Jamis Buck/test/tc_deck.rb +0 -30
  66. data/lib/quiz1/t/solutions/Jamis Buck/test/tc_key-stream.rb +0 -19
  67. data/lib/quiz1/t/solutions/Jamis Buck/test/tc_keying-algorithms.rb +0 -31
  68. data/lib/quiz1/t/solutions/Jamis Buck/test/tc_solitaire-cipher.rb +0 -66
  69. data/lib/quiz1/t/solutions/Jamis Buck/test/tc_unkeyed-algorithm.rb +0 -17
  70. data/lib/quiz1/t/solutions/Jamis Buck/test/tests.rb +0 -2
  71. data/lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb +0 -204
  72. data/lib/quiz1/t/solutions/Jim Menard/test.rb +0 -47
  73. data/lib/quiz1/t/solutions/Moses Hohman/cipher.rb +0 -97
  74. data/lib/quiz1/t/solutions/Moses Hohman/deck.rb +0 -140
  75. data/lib/quiz1/t/solutions/Moses Hohman/solitaire.rb +0 -14
  76. data/lib/quiz1/t/solutions/Moses Hohman/test_cipher.rb +0 -68
  77. data/lib/quiz1/t/solutions/Moses Hohman/test_deck.rb +0 -146
  78. data/lib/quiz1/t/solutions/Moses Hohman/test_util.rb +0 -38
  79. data/lib/quiz1/t/solutions/Moses Hohman/testsuite.rb +0 -5
  80. data/lib/quiz1/t/solutions/Moses Hohman/util.rb +0 -27
  81. data/lib/quiz1/t/solutions/Niklas Frykholm/solitaire.rb +0 -151
  82. data/lib/quiz1/t/solutions/Thomas Leitner/solitaire.rb +0 -198
  83. data/lib/zip/stdrubyext.rb +0 -111
  84. data/lib/zip/tempfile_bugfixed.rb +0 -195
  85. data/lib/zip/zip.rb +0 -1847
  86. data/lib/zip/zipfilesystem.rb +0 -609
  87. data/lib/zip/ziprequire.rb +0 -90
  88. data/samples/gtkRubyzip.rb +0 -86
  89. data/test/alltests.rb +0 -9
  90. data/test/data/file1.txt +0 -46
  91. data/test/data/file1.txt.deflatedData +0 -0
  92. data/test/data/file2.txt +0 -1504
  93. data/test/data/notzippedruby.rb +0 -7
  94. data/test/data/rubycode.zip +0 -0
  95. data/test/data/rubycode2.zip +0 -0
  96. data/test/data/testDirectory.bin +0 -0
  97. data/test/data/zipWithDirs.zip +0 -0
  98. data/test/gentestfiles.rb +0 -157
  99. data/test/ioextrastest.rb +0 -208
  100. data/test/stdrubyexttest.rb +0 -52
  101. data/test/zipfilesystemtest.rb +0 -831
  102. data/test/ziprequiretest.rb +0 -43
  103. data/test/ziptest.rb +0 -1599
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << '../lib'
4
+
5
+ $VERBOSE = true
6
+
7
+ require 'gtk'
8
+ require 'zip'
9
+
10
+ class MainApp < Gtk::Window
11
+ def initialize
12
+ super()
13
+ set_usize(400, 256)
14
+ set_title('rubyzip')
15
+ signal_connect(Gtk::Window::SIGNAL_DESTROY) { Gtk.main_quit }
16
+
17
+ box = Gtk::VBox.new(false, 0)
18
+ add(box)
19
+
20
+ @zipfile = nil
21
+ @button_panel = ButtonPanel.new
22
+ @button_panel.open_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
23
+ show_file_selector
24
+ end
25
+ @button_panel.extract_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
26
+ puts 'Not implemented!'
27
+ end
28
+ box.pack_start(@button_panel, false, false, 0)
29
+
30
+ sw = Gtk::ScrolledWindow.new
31
+ sw.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
32
+ box.pack_start(sw, true, true, 0)
33
+
34
+ @clist = Gtk::CList.new(%w[Name Size Compression])
35
+ @clist.set_selection_mode(Gtk::SELECTION_BROWSE)
36
+ @clist.set_column_width(0, 120)
37
+ @clist.set_column_width(1, 120)
38
+ @clist.signal_connect(Gtk::CList::SIGNAL_SELECT_ROW) do |_w, row, _column, _event|
39
+ @selected_row = row
40
+ end
41
+ sw.add(@clist)
42
+ end
43
+
44
+ class ButtonPanel < Gtk::HButtonBox
45
+ attr_reader :open_button, :extract_button
46
+ def initialize
47
+ super
48
+ set_layout(Gtk::BUTTONBOX_START)
49
+ set_spacing(0)
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
+ end
55
+ end
56
+
57
+ def show_file_selector
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
+ end
64
+ @file_selector.cancel_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
65
+ @file_selector.destroy
66
+ end
67
+ end
68
+
69
+ def open_zip(filename)
70
+ @zipfile = Zip::File.open(filename)
71
+ @clist.clear
72
+ @zipfile.each do |entry|
73
+ @clist.append([entry.name,
74
+ entry.size.to_s,
75
+ (100.0 * entry.compressedSize / entry.size).to_s + '%'])
76
+ end
77
+ end
78
+ end
79
+
80
+ main_app = MainApp.new
81
+
82
+ main_app.show_all
83
+
84
+ Gtk.main
data/samples/qtzip.rb CHANGED
@@ -1,22 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $VERBOSE=true
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')
9
9
  require 'zipdialogui.rb'
10
- require 'zip/zip'
11
-
12
-
10
+ require 'zip'
13
11
 
14
12
  a = Qt::Application.new(ARGV)
15
13
 
16
14
  class ZipDialog < ZipDialogUI
17
-
18
-
19
- def initialize()
15
+ def initialize
20
16
  super()
21
17
  connect(child('add_button'), SIGNAL('clicked()'),
22
18
  self, SLOT('add_files()'))
@@ -24,24 +20,22 @@ class ZipDialog < ZipDialogUI
24
20
  self, SLOT('extract_files()'))
25
21
  end
26
22
 
27
- def zipfile(&proc)
28
- Zip::ZipFile.open(@zip_filename, &proc)
23
+ def zipfile(&a_proc)
24
+ Zip::File.open(@zip_filename, &a_proc)
29
25
  end
30
26
 
31
- def each(&proc)
32
- Zip::ZipFile.foreach(@zip_filename, &proc)
27
+ def each(&a_proc)
28
+ Zip::File.foreach(@zip_filename, &a_proc)
33
29
  end
34
-
35
- def refresh()
36
- lv = child("entry_list_view")
30
+
31
+ def refresh
32
+ lv = child('entry_list_view')
37
33
  lv.clear
38
- each {
39
- |e|
34
+ each do |e|
40
35
  lv.insert_item(Qt::ListViewItem.new(lv, e.name, e.size.to_s))
41
- }
36
+ end
42
37
  end
43
38
 
44
-
45
39
  def load(zipfile)
46
40
  @zip_filename = zipfile
47
41
  refresh
@@ -49,13 +43,11 @@ class ZipDialog < ZipDialogUI
49
43
 
50
44
  def add_files
51
45
  l = Qt::FileDialog.getOpenFileNames(nil, nil, self)
52
- zipfile {
53
- |zf|
54
- l.each {
55
- |path|
46
+ zipfile do |zf|
47
+ l.each do |path|
56
48
  zf.add(File.basename(path), path)
57
- }
58
- }
49
+ end
50
+ end
59
51
  refresh
60
52
  end
61
53
 
@@ -63,7 +55,7 @@ class ZipDialog < ZipDialogUI
63
55
  selected_items = []
64
56
  unselected_items = []
65
57
  lv_item = entry_list_view.first_child
66
- while (lv_item)
58
+ while lv_item
67
59
  if entry_list_view.is_selected(lv_item)
68
60
  selected_items << lv_item.text(0)
69
61
  else
@@ -73,23 +65,22 @@ class ZipDialog < ZipDialogUI
73
65
  end
74
66
  puts "selected_items.size = #{selected_items.size}"
75
67
  puts "unselected_items.size = #{unselected_items.size}"
76
- items = selected_items.size > 0 ? selected_items : unselected_items
68
+ items = !selected_items.empty? ? selected_items : unselected_items
77
69
  puts "items.size = #{items.size}"
78
70
 
79
71
  d = Qt::FileDialog.get_existing_directory(nil, self)
80
- if (!d)
81
- puts "No directory chosen"
72
+ if !d
73
+ puts 'No directory chosen'
82
74
  else
83
75
  zipfile { |zf| items.each { |e| zf.extract(e, File.join(d, e)) } }
84
76
  end
85
-
86
77
  end
87
78
 
88
79
  slots 'add_files()', 'extract_files()'
89
80
  end
90
81
 
91
- if !ARGV[0]
92
- puts "usage: #{$0} zipname"
82
+ unless ARGV[0]
83
+ puts "usage: #{$PROGRAM_NAME} zipname"
93
84
  exit
94
85
  end
95
86
 
@@ -97,5 +88,5 @@ zd = ZipDialog.new
97
88
  zd.load(ARGV[0])
98
89
 
99
90
  a.mainWidget = zd
100
- zd.show()
101
- a.exec()
91
+ zd.show
92
+ a.exec
@@ -1,13 +1,10 @@
1
- #!/usr/bin/env ruby
2
-
3
- $: << "../lib"
4
-
5
- require 'zip/zip'
6
-
7
- include Zip
8
-
9
- ZipOutputStream.open('simple.zip') {
10
- |zos|
11
- ze = zos.put_next_entry 'entry.txt'
12
- zos.puts "Hello world"
13
- }
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << '../lib'
4
+
5
+ require 'zip'
6
+
7
+ ::Zip::OutputStream.open('simple.zip') do |zos|
8
+ zos.put_next_entry 'entry.txt'
9
+ zos.puts 'Hello world'
10
+ end
data/samples/zipfind.rb CHANGED
@@ -2,72 +2,65 @@
2
2
 
3
3
  $VERBOSE = true
4
4
 
5
- $: << "../lib"
5
+ $LOAD_PATH << '../lib'
6
6
 
7
- require 'zip/zip'
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) {
14
- |fileName|
15
- yield(fileName)
16
- if zipFilePattern.match(fileName) && File.file?(fileName)
17
- begin
18
- Zip::ZipFile.foreach(fileName) {
19
- |zipEntry|
20
- yield(fileName + File::SEPARATOR + zipEntry.to_s)
21
- }
22
- rescue Errno::EACCES => ex
23
- puts ex
24
- end
25
- end
26
- }
27
- end
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)
28
16
 
29
- def self.find_file(path, fileNamePattern, zipFilePattern = /\.zip$/i)
30
- self.find(path, zipFilePattern) {
31
- |fileName|
32
- yield(fileName) if fileNamePattern.match(fileName)
33
- }
17
+ begin
18
+ Zip::File.foreach(filename) do |entry|
19
+ yield(filename + File::SEPARATOR + entry.to_s)
20
+ end
21
+ rescue Errno::EACCES => e
22
+ puts e
23
+ end
24
+ end
34
25
  end
35
26
 
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)
30
+ end
31
+ end
36
32
  end
37
33
  end
38
34
 
39
- if __FILE__ == $0
35
+ if $PROGRAM_NAME == __FILE__
40
36
  module ZipFindConsoleRunner
41
-
42
- PATH_ARG_INDEX = 0;
43
- FILENAME_PATTERN_ARG_INDEX = 1;
44
- ZIPFILE_PATTERN_ARG_INDEX = 2;
45
-
37
+ PATH_ARG_INDEX = 0
38
+ FILENAME_PATTERN_ARG_INDEX = 1
39
+ ZIPFILE_PATTERN_ARG_INDEX = 2
40
+
46
41
  def self.run(args)
47
42
  check_args(args)
48
- Zip::ZipFind.find_file(args[PATH_ARG_INDEX],
49
- args[FILENAME_PATTERN_ARG_INDEX],
50
- args[ZIPFILE_PATTERN_ARG_INDEX]) {
51
- |fileName|
52
- report_entry_found fileName
53
- }
43
+ Zip::ZipFind.find_file(args[PATH_ARG_INDEX],
44
+ args[FILENAME_PATTERN_ARG_INDEX],
45
+ args[ZIPFILE_PATTERN_ARG_INDEX]) do |filename|
46
+ report_entry_found filename
47
+ end
54
48
  end
55
-
49
+
56
50
  def self.check_args(args)
57
- if (args.size != 3)
58
- usage
59
- exit
60
- end
51
+ return if args.size == 3
52
+
53
+ usage
54
+ exit
61
55
  end
62
56
 
63
57
  def self.usage
64
- puts "Usage: #{$0} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
58
+ puts "Usage: #{$PROGRAM_NAME} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
65
59
  end
66
-
67
- def self.report_entry_found(fileName)
68
- puts fileName
60
+
61
+ def self.report_entry_found(filename)
62
+ puts filename
69
63
  end
70
-
71
64
  end
72
65
 
73
66
  ZipFindConsoleRunner.run(ARGV)
metadata CHANGED
@@ -1,97 +1,188 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.6
3
- specification_version: 1
1
+ --- !ruby/object:Gem::Specification
4
2
  name: rubyzip
5
- version: !ruby/object:Gem::Version
6
- version: 0.9.1
7
- date: 2006-07-29
8
- summary: rubyzip is a ruby module for reading and writing zip files
9
- require_paths:
10
- - lib
11
- email: thomas(at)sondergaard.cc
12
- homepage: http://rubyzip.sourceforge.net/
13
- rubyforge_project:
14
- description:
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Simonov
15
8
  autorequire:
16
- default_executable:
17
9
  bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
25
- version:
26
- platform: ruby
27
- authors:
28
- - Thomas Sondergaard
29
- files:
30
- - README
31
- - NEWS
32
- - TODO
33
- - ChangeLog
34
- - install.rb
35
- - Rakefile
36
- - samples/example.rb
37
- - samples/example_filesystem.rb
38
- - samples/gtkRubyzip.rb
39
- - samples/qtzip.rb
40
- - samples/write_simple.rb
41
- - samples/zipfind.rb
42
- - test/alltests.rb
43
- - test/gentestfiles.rb
44
- - test/ioextrastest.rb
45
- - test/stdrubyexttest.rb
46
- - test/zipfilesystemtest.rb
47
- - test/ziprequiretest.rb
48
- - test/ziptest.rb
49
- - test/data/file1.txt
50
- - test/data/file1.txt.deflatedData
51
- - test/data/file2.txt
52
- - test/data/notzippedruby.rb
53
- - test/data/rubycode.zip
54
- - test/data/rubycode2.zip
55
- - test/data/testDirectory.bin
56
- - test/data/zipWithDirs.zip
57
- - lib/download_quizzes.rb
58
- - lib/zip/ioextras.rb
59
- - lib/zip/stdrubyext.rb
60
- - lib/zip/tempfile_bugfixed.rb
61
- - lib/zip/zip.rb
62
- - lib/zip/zipfilesystem.rb
63
- - lib/zip/ziprequire.rb
64
- - lib/quiz1/t/solutions/Bill Guindon/solitaire.rb
65
- - lib/quiz1/t/solutions/Carlos/solitaire.rb
66
- - lib/quiz1/t/solutions/Dennis Ranke/solitaire.rb
67
- - lib/quiz1/t/solutions/Florian Gross/solitaire.rb
68
- - lib/quiz1/t/solutions/Glen M. Lewis/solitaire.rb
69
- - lib/quiz1/t/solutions/James Edward Gray II/solitaire.rb
70
- - lib/quiz1/t/solutions/Jamis Buck/bin/main.rb
71
- - lib/quiz1/t/solutions/Jamis Buck/lib/cipher.rb
72
- - lib/quiz1/t/solutions/Jamis Buck/lib/cli.rb
73
- - lib/quiz1/t/solutions/Jamis Buck/test/tc_deck.rb
74
- - lib/quiz1/t/solutions/Jamis Buck/test/tc_key-stream.rb
75
- - lib/quiz1/t/solutions/Jamis Buck/test/tc_keying-algorithms.rb
76
- - lib/quiz1/t/solutions/Jamis Buck/test/tc_solitaire-cipher.rb
77
- - lib/quiz1/t/solutions/Jamis Buck/test/tc_unkeyed-algorithm.rb
78
- - lib/quiz1/t/solutions/Jamis Buck/test/tests.rb
79
- - lib/quiz1/t/solutions/Jim Menard/solitaire_cypher.rb
80
- - lib/quiz1/t/solutions/Jim Menard/test.rb
81
- - lib/quiz1/t/solutions/Moses Hohman/cipher.rb
82
- - lib/quiz1/t/solutions/Moses Hohman/deck.rb
83
- - lib/quiz1/t/solutions/Moses Hohman/solitaire.rb
84
- - lib/quiz1/t/solutions/Moses Hohman/test_cipher.rb
85
- - lib/quiz1/t/solutions/Moses Hohman/test_deck.rb
86
- - lib/quiz1/t/solutions/Moses Hohman/test_util.rb
87
- - lib/quiz1/t/solutions/Moses Hohman/testsuite.rb
88
- - lib/quiz1/t/solutions/Moses Hohman/util.rb
89
- - lib/quiz1/t/solutions/Niklas Frykholm/solitaire.rb
90
- - lib/quiz1/t/solutions/Thomas Leitner/solitaire.rb
91
- test_files: []
92
- rdoc_options: []
93
- extra_rdoc_files: []
10
+ cert_chain: []
11
+ date: 2021-07-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: coveralls
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.10'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '12.3'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 12.3.3
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '12.3'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 12.3.3
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.79'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.79'
89
+ description:
90
+ email:
91
+ - alex@simonov.me
94
92
  executables: []
95
93
  extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - README.md
97
+ - Rakefile
98
+ - TODO
99
+ - lib/zip.rb
100
+ - lib/zip/central_directory.rb
101
+ - lib/zip/compressor.rb
102
+ - lib/zip/constants.rb
103
+ - lib/zip/crypto/decrypted_io.rb
104
+ - lib/zip/crypto/encryption.rb
105
+ - lib/zip/crypto/null_encryption.rb
106
+ - lib/zip/crypto/traditional_encryption.rb
107
+ - lib/zip/decompressor.rb
108
+ - lib/zip/deflater.rb
109
+ - lib/zip/dos_time.rb
110
+ - lib/zip/entry.rb
111
+ - lib/zip/entry_set.rb
112
+ - lib/zip/errors.rb
113
+ - lib/zip/extra_field.rb
114
+ - lib/zip/extra_field/generic.rb
115
+ - lib/zip/extra_field/ntfs.rb
116
+ - lib/zip/extra_field/old_unix.rb
117
+ - lib/zip/extra_field/universal_time.rb
118
+ - lib/zip/extra_field/unix.rb
119
+ - lib/zip/extra_field/zip64.rb
120
+ - lib/zip/extra_field/zip64_placeholder.rb
121
+ - lib/zip/file.rb
122
+ - lib/zip/filesystem.rb
123
+ - lib/zip/inflater.rb
124
+ - lib/zip/input_stream.rb
125
+ - lib/zip/ioextras.rb
126
+ - lib/zip/ioextras/abstract_input_stream.rb
127
+ - lib/zip/ioextras/abstract_output_stream.rb
128
+ - lib/zip/null_compressor.rb
129
+ - lib/zip/null_decompressor.rb
130
+ - lib/zip/null_input_stream.rb
131
+ - lib/zip/output_stream.rb
132
+ - lib/zip/pass_thru_compressor.rb
133
+ - lib/zip/pass_thru_decompressor.rb
134
+ - lib/zip/streamable_directory.rb
135
+ - lib/zip/streamable_stream.rb
136
+ - lib/zip/version.rb
137
+ - samples/example.rb
138
+ - samples/example_filesystem.rb
139
+ - samples/example_recursive.rb
140
+ - samples/gtk_ruby_zip.rb
141
+ - samples/qtzip.rb
142
+ - samples/write_simple.rb
143
+ - samples/zipfind.rb
144
+ homepage: http://github.com/rubyzip/rubyzip
145
+ licenses:
146
+ - BSD 2-Clause
147
+ metadata:
148
+ bug_tracker_uri: https://github.com/rubyzip/rubyzip/issues
149
+ changelog_uri: https://github.com/rubyzip/rubyzip/blob/v2.3.2/Changelog.md
150
+ documentation_uri: https://www.rubydoc.info/gems/rubyzip/2.3.2
151
+ source_code_uri: https://github.com/rubyzip/rubyzip/tree/v2.3.2
152
+ wiki_uri: https://github.com/rubyzip/rubyzip/wiki
153
+ post_install_message: |
154
+ RubyZip 3.0 is coming!
155
+ **********************
156
+
157
+ The public API of some Rubyzip classes has been modernized to use named
158
+ parameters for optional arguments. Please check your usage of the
159
+ following classes:
160
+ * `Zip::File`
161
+ * `Zip::Entry`
162
+ * `Zip::InputStream`
163
+ * `Zip::OutputStream`
164
+
165
+ Please ensure that your Gemfiles and .gemspecs are suitably restrictive
166
+ to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
167
+ See https://github.com/rubyzip/rubyzip for details. The Changelog also
168
+ lists other enhancements and bugfixes that have been implemented since
169
+ version 2.3.0.
170
+ rdoc_options: []
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '2.4'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
96
183
  requirements: []
97
- dependencies: []
184
+ rubygems_version: 3.1.4
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: rubyzip is a ruby module for reading and writing zip files
188
+ test_files: []