vagrant-unbundled 2.2.6.1 → 2.2.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -9
  3. data/vagrant.gemspec +1 -1
  4. data/vendor/bundle/ruby/2.6.0/bundler/gems/vagrant-spec-abfc34474d12/vagrant-spec.gemspec +1 -1
  5. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/CHANGELOG +79 -0
  6. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/MIT-LICENSE +21 -0
  7. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/README.rdoc +109 -0
  8. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/Rakefile +78 -0
  9. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/lib/erubi/capture_end.rb +52 -0
  10. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/lib/erubi.rb +211 -0
  11. data/vendor/bundle/ruby/2.6.0/gems/erubi-1.9.0/test/test.rb +780 -0
  12. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/README.md +354 -0
  13. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/Rakefile +18 -0
  14. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/TODO +15 -0
  15. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/central_directory.rb +208 -0
  16. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/compressor.rb +9 -0
  17. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/constants.rb +63 -0
  18. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/crypto/encryption.rb +11 -0
  19. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/crypto/null_encryption.rb +43 -0
  20. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/crypto/traditional_encryption.rb +99 -0
  21. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/decompressor.rb +13 -0
  22. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/deflater.rb +34 -0
  23. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/dos_time.rb +48 -0
  24. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/entry.rb +700 -0
  25. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/entry_set.rb +86 -0
  26. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/errors.rb +18 -0
  27. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/generic.rb +43 -0
  28. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/ntfs.rb +90 -0
  29. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/old_unix.rb +44 -0
  30. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/universal_time.rb +47 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/unix.rb +37 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/zip64.rb +68 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field/zip64_placeholder.rb +15 -0
  34. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/extra_field.rb +101 -0
  35. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/file.rb +443 -0
  36. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/filesystem.rb +627 -0
  37. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/inflater.rb +66 -0
  38. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/input_stream.rb +173 -0
  39. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/ioextras/abstract_input_stream.rb +111 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/ioextras/abstract_output_stream.rb +43 -0
  41. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/ioextras.rb +36 -0
  42. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/null_compressor.rb +15 -0
  43. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/null_decompressor.rb +27 -0
  44. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/null_input_stream.rb +10 -0
  45. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/output_stream.rb +189 -0
  46. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/pass_thru_compressor.rb +23 -0
  47. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/pass_thru_decompressor.rb +40 -0
  48. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/streamable_directory.rb +15 -0
  49. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/streamable_stream.rb +56 -0
  50. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip/version.rb +3 -0
  51. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/lib/zip.rb +71 -0
  52. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/example.rb +81 -0
  53. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/example_filesystem.rb +31 -0
  54. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/example_recursive.rb +54 -0
  55. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/gtk_ruby_zip.rb +84 -0
  56. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/qtzip.rb +92 -0
  57. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/write_simple.rb +12 -0
  58. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-2.0.0/samples/zipfind.rb +66 -0
  59. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/LICENSE +202 -0
  60. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/README.md +276 -0
  61. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/bin/rwinrm +90 -0
  62. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/connection.rb +84 -0
  63. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/connection_opts.rb +90 -0
  64. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/exceptions.rb +88 -0
  65. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/http/response_handler.rb +127 -0
  66. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/http/transport.rb +462 -0
  67. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/http/transport_factory.rb +64 -0
  68. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/output.rb +58 -0
  69. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/create_pipeline.xml.erb +167 -0
  70. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/fragment.rb +68 -0
  71. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/init_runspace_pool.xml.erb +224 -0
  72. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message.rb +128 -0
  73. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/base.rb +47 -0
  74. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/error_record.rb +66 -0
  75. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/pipeline_host_call.rb +30 -0
  76. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/pipeline_output.rb +48 -0
  77. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/pipeline_state.rb +38 -0
  78. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/runspacepool_host_call.rb +30 -0
  79. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/runspacepool_state.rb +37 -0
  80. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data/session_capability.rb +34 -0
  81. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_data.rb +40 -0
  82. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_defragmenter.rb +62 -0
  83. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_factory.rb +86 -0
  84. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/message_fragmenter.rb +58 -0
  85. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/powershell_output_decoder.rb +142 -0
  86. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/receive_response_reader.rb +95 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/session_capability.xml.erb +7 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/psrp/uuid.rb +39 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/shells/base.rb +187 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/shells/cmd.rb +63 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/shells/power_shell.rb +206 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/shells/retryable.rb +44 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/shells/shell_factory.rb +56 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/version.rb +5 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/base.rb +57 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/cleanup_command.rb +60 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/close_shell.rb +49 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/command.rb +100 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/command_output.rb +75 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/command_output_decoder.rb +54 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/configuration.rb +44 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/create_pipeline.rb +64 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/create_shell.rb +115 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/header.rb +213 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/init_runspace_pool.rb +96 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/iso8601_duration.rb +58 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/keep_alive.rb +66 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/receive_response_reader.rb +128 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/send_data.rb +66 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/soap.rb +49 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/wql_pull.rb +54 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/wql_query.rb +98 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm/wsmv/write_stdin.rb +86 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.3/lib/winrm.rb +37 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/winrm-elevated-1.1.2/LICENSE +202 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/winrm-elevated-1.1.2/README.md +99 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/winrm-elevated-1.1.2/lib/winrm/shells/elevated.rb +108 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/winrm-elevated-1.1.2/lib/winrm-elevated/scripts/elevated_shell.ps1 +116 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/winrm-elevated-1.1.2/lib/winrm-elevated.rb +17 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/LICENSE +202 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/README.md +82 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/bin/rwinrmcp +87 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/core/file_transporter.rb +569 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/core/tmp_zip.rb +178 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/exceptions.rb +29 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/file_manager.rb +158 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/check_files.ps1.erb +49 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/checksum.ps1.erb +13 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/create_dir.ps1.erb +6 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/delete.ps1.erb +6 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/download.ps1.erb +17 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/exists.ps1.erb +10 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/extract_files.ps1.erb +52 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs/scripts/scripts.rb +47 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/winrm-fs-1.3.4/lib/winrm-fs.rb +29 -0
  136. data/vendor/bundle/ruby/2.6.0/specifications/erubi-1.9.0.gemspec +38 -0
  137. data/vendor/bundle/ruby/2.6.0/specifications/rubyzip-2.0.0.gemspec +45 -0
  138. data/vendor/bundle/ruby/2.6.0/specifications/winrm-2.3.3.gemspec +73 -0
  139. data/vendor/bundle/ruby/2.6.0/specifications/winrm-elevated-1.1.2.gemspec +50 -0
  140. data/vendor/bundle/ruby/2.6.0/specifications/winrm-fs-1.3.4.gemspec +58 -0
  141. data/version.txt +1 -1
  142. metadata +142 -6
@@ -0,0 +1,56 @@
1
+ module Zip
2
+ class StreamableStream < DelegateClass(Entry) # nodoc:all
3
+ def initialize(entry)
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)
11
+ @temp_file.binmode
12
+ end
13
+
14
+ def get_output_stream
15
+ if block_given?
16
+ begin
17
+ yield(@temp_file)
18
+ ensure
19
+ @temp_file.close
20
+ end
21
+ else
22
+ @temp_file
23
+ end
24
+ end
25
+
26
+ def get_input_stream
27
+ unless @temp_file.closed?
28
+ raise StandardError, "cannot open entry for reading while its open for writing - #{name}"
29
+ end
30
+ @temp_file.open # reopens tempfile from top
31
+ @temp_file.binmode
32
+ if block_given?
33
+ begin
34
+ yield(@temp_file)
35
+ ensure
36
+ @temp_file.close
37
+ end
38
+ else
39
+ @temp_file
40
+ end
41
+ end
42
+
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) }
46
+ end
47
+
48
+ def clean_up
49
+ @temp_file.unlink
50
+ end
51
+ end
52
+ end
53
+
54
+ # Copyright (C) 2002, 2003 Thomas Sondergaard
55
+ # rubyzip is free software; you can redistribute it and/or
56
+ # modify it under the terms of the ruby license.
@@ -0,0 +1,3 @@
1
+ module Zip
2
+ VERSION = '2.0.0'
3
+ end
@@ -0,0 +1,71 @@
1
+ require 'delegate'
2
+ require 'singleton'
3
+ require 'tempfile'
4
+ require 'tmpdir'
5
+ require 'fileutils'
6
+ require 'stringio'
7
+ require 'zlib'
8
+ require 'zip/dos_time'
9
+ require 'zip/ioextras'
10
+ require 'rbconfig'
11
+ require 'zip/entry'
12
+ require 'zip/extra_field'
13
+ require 'zip/entry_set'
14
+ require 'zip/central_directory'
15
+ require 'zip/file'
16
+ require 'zip/input_stream'
17
+ require 'zip/output_stream'
18
+ require 'zip/decompressor'
19
+ require 'zip/compressor'
20
+ require 'zip/null_decompressor'
21
+ require 'zip/null_compressor'
22
+ require 'zip/null_input_stream'
23
+ require 'zip/pass_thru_compressor'
24
+ require 'zip/pass_thru_decompressor'
25
+ require 'zip/crypto/encryption'
26
+ require 'zip/crypto/null_encryption'
27
+ require 'zip/crypto/traditional_encryption'
28
+ require 'zip/inflater'
29
+ require 'zip/deflater'
30
+ require 'zip/streamable_stream'
31
+ require 'zip/streamable_directory'
32
+ require 'zip/constants'
33
+ require 'zip/errors'
34
+
35
+ module Zip
36
+ extend self
37
+ attr_accessor :unicode_names,
38
+ :on_exists_proc,
39
+ :continue_on_exists_proc,
40
+ :sort_entries,
41
+ :default_compression,
42
+ :write_zip64_support,
43
+ :warn_invalid_date,
44
+ :case_insensitive_match,
45
+ :force_entry_names_encoding,
46
+ :validate_entry_sizes
47
+
48
+ def reset!
49
+ @_ran_once = false
50
+ @unicode_names = false
51
+ @on_exists_proc = false
52
+ @continue_on_exists_proc = false
53
+ @sort_entries = false
54
+ @default_compression = ::Zlib::DEFAULT_COMPRESSION
55
+ @write_zip64_support = false
56
+ @warn_invalid_date = true
57
+ @case_insensitive_match = false
58
+ @validate_entry_sizes = true
59
+ end
60
+
61
+ def setup
62
+ yield self unless @_ran_once
63
+ @_ran_once = true
64
+ end
65
+
66
+ reset!
67
+ end
68
+
69
+ # Copyright (C) 2002, 2003 Thomas Sondergaard
70
+ # rubyzip is free software; you can redistribute it and/or
71
+ # modify it under the terms of the ruby license.
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $: << '../lib'
4
+ system('zip example.zip example.rb gtk_ruby_zip.rb')
5
+
6
+ require 'zip'
7
+
8
+ ####### Using ZipInputStream alone: #######
9
+
10
+ Zip::InputStream.open('example.zip') do |zis|
11
+ entry = zis.get_next_entry
12
+ print "First line of '#{entry.name} (#{entry.size} bytes): "
13
+ puts "'#{zis.gets.chomp}'"
14
+ entry = zis.get_next_entry
15
+ print "First line of '#{entry.name} (#{entry.size} bytes): "
16
+ puts "'#{zis.gets.chomp}'"
17
+ end
18
+
19
+ ####### Using ZipFile to read the directory of a zip file: #######
20
+
21
+ zf = Zip::File.new('example.zip')
22
+ zf.each_with_index do |entry, index|
23
+ puts "entry #{index} is #{entry.name}, size = #{entry.size}, compressed size = #{entry.compressed_size}"
24
+ # use zf.get_input_stream(entry) to get a ZipInputStream for the entry
25
+ # entry can be the ZipEntry object or any object which has a to_s method that
26
+ # returns the name of the entry.
27
+ end
28
+
29
+ ####### Using ZipOutputStream to write a zip file: #######
30
+
31
+ Zip::OutputStream.open('exampleout.zip') do |zos|
32
+ zos.put_next_entry('the first little entry')
33
+ zos.puts 'Hello hello hello hello hello hello hello hello hello'
34
+
35
+ zos.put_next_entry('the second little entry')
36
+ zos.puts 'Hello again'
37
+
38
+ # Use rubyzip or your zip client of choice to verify
39
+ # the contents of exampleout.zip
40
+ end
41
+
42
+ ####### Using ZipFile to change a zip file: #######
43
+
44
+ Zip::File.open('exampleout.zip') do |zip_file|
45
+ zip_file.add('thisFile.rb', 'example.rb')
46
+ zip_file.rename('thisFile.rb', 'ILikeThisName.rb')
47
+ zip_file.add('Again', 'example.rb')
48
+ end
49
+
50
+ # Lets check
51
+ Zip::File.open('exampleout.zip') do |zip_file|
52
+ puts "Changed zip file contains: #{zip_file.entries.join(', ')}"
53
+ zip_file.remove('Again')
54
+ puts "Without 'Again': #{zip_file.entries.join(', ')}"
55
+ end
56
+
57
+ ####### Using ZipFile to split a zip file: #######
58
+
59
+ # Creating large zip file for splitting
60
+ Zip::OutputStream.open('large_zip_file.zip') do |zos|
61
+ puts 'Creating zip file...'
62
+ 10.times do |i|
63
+ zos.put_next_entry("large_entry_#{i}.txt")
64
+ zos.puts 'Hello' * 104_857_600
65
+ end
66
+ end
67
+
68
+ # Splitting created large zip file
69
+ part_zips_count = Zip::File.split('large_zip_file.zip', 2_097_152, false)
70
+ puts "Zip file splitted in #{part_zips_count} parts"
71
+
72
+ # Track splitting an archive
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}%"
75
+ end
76
+
77
+ # For other examples, look at zip.rb and ziptest.rb
78
+
79
+ # Copyright (C) 2002 Thomas Sondergaard
80
+ # rubyzip is free software; you can redistribute it and/or
81
+ # modify it under the terms of the ruby license.
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $: << '../lib'
4
+
5
+ require 'zip/filesystem'
6
+
7
+ EXAMPLE_ZIP = 'filesystem.zip'
8
+
9
+ File.delete(EXAMPLE_ZIP) if File.exist?(EXAMPLE_ZIP)
10
+
11
+ Zip::File.open(EXAMPLE_ZIP, Zip::File::CREATE) do |zf|
12
+ zf.file.open('file1.txt', 'w') { |os| os.write 'first file1.txt' }
13
+ zf.dir.mkdir('dir1')
14
+ zf.dir.chdir('dir1')
15
+ zf.file.open('file1.txt', 'w') { |os| os.write 'second file1.txt' }
16
+ puts zf.file.read('file1.txt')
17
+ puts zf.file.read('../file1.txt')
18
+ zf.dir.chdir('..')
19
+ zf.file.open('file2.txt', 'w') { |os| os.write 'first file2.txt' }
20
+ puts "Entries: #{zf.entries.join(', ')}"
21
+ end
22
+
23
+ Zip::File.open(EXAMPLE_ZIP) do |zf|
24
+ puts "Entries from reloaded zip: #{zf.entries.join(', ')}"
25
+ end
26
+
27
+ # For other examples, look at zip.rb and ziptest.rb
28
+
29
+ # Copyright (C) 2003 Thomas Sondergaard
30
+ # rubyzip is free software; you can redistribute it and/or
31
+ # modify it under the terms of the ruby license.
@@ -0,0 +1,54 @@
1
+ require 'zip'
2
+
3
+ # This is a simple example which uses rubyzip to
4
+ # recursively generate a zip file from the contents of
5
+ # a specified directory. The directory itself is not
6
+ # included in the archive, rather just its contents.
7
+ #
8
+ # Usage:
9
+ # directory_to_zip = "/tmp/input"
10
+ # output_file = "/tmp/out.zip"
11
+ # zf = ZipFileGenerator.new(directory_to_zip, output_file)
12
+ # zf.write()
13
+ class ZipFileGenerator
14
+ # Initialize with the directory to zip and the location of the output archive.
15
+ def initialize(input_dir, output_file)
16
+ @input_dir = input_dir
17
+ @output_file = output_file
18
+ end
19
+
20
+ # Zip the input directory.
21
+ def write
22
+ entries = Dir.entries(@input_dir) - %w[. ..]
23
+
24
+ ::Zip::File.open(@output_file, ::Zip::File::CREATE) do |zipfile|
25
+ write_entries entries, '', zipfile
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ # A helper method to make the recursion work.
32
+ def write_entries(entries, path, zipfile)
33
+ entries.each do |e|
34
+ zipfile_path = path == '' ? e : File.join(path, e)
35
+ disk_file_path = File.join(@input_dir, zipfile_path)
36
+
37
+ if File.directory? disk_file_path
38
+ recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)
39
+ else
40
+ put_into_archive(disk_file_path, zipfile, zipfile_path)
41
+ end
42
+ end
43
+ end
44
+
45
+ def recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)
46
+ zipfile.mkdir zipfile_path
47
+ subdir = Dir.entries(disk_file_path) - %w[. ..]
48
+ write_entries subdir, zipfile_path, zipfile
49
+ end
50
+
51
+ def put_into_archive(disk_file_path, zipfile, zipfile_path)
52
+ zipfile.add(zipfile_path, disk_file_path)
53
+ end
54
+ end
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $: << '../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
+ @buttonPanel = ButtonPanel.new
22
+ @buttonPanel.openButton.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
23
+ show_file_selector
24
+ end
25
+ @buttonPanel.extractButton.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
26
+ puts 'Not implemented!'
27
+ end
28
+ box.pack_start(@buttonPanel, 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 :openButton, :extractButton
46
+ def initialize
47
+ super
48
+ set_layout(Gtk::BUTTONBOX_START)
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)
54
+ end
55
+ end
56
+
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
63
+ end
64
+ @fileSelector.cancel_button.signal_connect(Gtk::Button::SIGNAL_CLICKED) do
65
+ @fileSelector.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
+ mainApp = MainApp.new
81
+
82
+ mainApp.show_all
83
+
84
+ Gtk.main
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $VERBOSE = true
4
+
5
+ $: << '../lib'
6
+
7
+ require 'Qt'
8
+ system('rbuic -o zipdialogui.rb zipdialogui.ui')
9
+ require 'zipdialogui.rb'
10
+ require 'zip'
11
+
12
+ a = Qt::Application.new(ARGV)
13
+
14
+ class ZipDialog < ZipDialogUI
15
+ def initialize
16
+ super()
17
+ connect(child('add_button'), SIGNAL('clicked()'),
18
+ self, SLOT('add_files()'))
19
+ connect(child('extract_button'), SIGNAL('clicked()'),
20
+ self, SLOT('extract_files()'))
21
+ end
22
+
23
+ def zipfile(&proc)
24
+ Zip::File.open(@zip_filename, &proc)
25
+ end
26
+
27
+ def each(&proc)
28
+ Zip::File.foreach(@zip_filename, &proc)
29
+ end
30
+
31
+ def refresh
32
+ lv = child('entry_list_view')
33
+ lv.clear
34
+ each do |e|
35
+ lv.insert_item(Qt::ListViewItem.new(lv, e.name, e.size.to_s))
36
+ end
37
+ end
38
+
39
+ def load(zipfile)
40
+ @zip_filename = zipfile
41
+ refresh
42
+ end
43
+
44
+ def add_files
45
+ l = Qt::FileDialog.getOpenFileNames(nil, nil, self)
46
+ zipfile do |zf|
47
+ l.each do |path|
48
+ zf.add(File.basename(path), path)
49
+ end
50
+ end
51
+ refresh
52
+ end
53
+
54
+ def extract_files
55
+ selected_items = []
56
+ unselected_items = []
57
+ lv_item = entry_list_view.first_child
58
+ while lv_item
59
+ if entry_list_view.is_selected(lv_item)
60
+ selected_items << lv_item.text(0)
61
+ else
62
+ unselected_items << lv_item.text(0)
63
+ end
64
+ lv_item = lv_item.next_sibling
65
+ end
66
+ puts "selected_items.size = #{selected_items.size}"
67
+ puts "unselected_items.size = #{unselected_items.size}"
68
+ items = !selected_items.empty? ? selected_items : unselected_items
69
+ puts "items.size = #{items.size}"
70
+
71
+ d = Qt::FileDialog.get_existing_directory(nil, self)
72
+ if !d
73
+ puts 'No directory chosen'
74
+ else
75
+ zipfile { |zf| items.each { |e| zf.extract(e, File.join(d, e)) } }
76
+ end
77
+ end
78
+
79
+ slots 'add_files()', 'extract_files()'
80
+ end
81
+
82
+ unless ARGV[0]
83
+ puts "usage: #{$0} zipname"
84
+ exit
85
+ end
86
+
87
+ zd = ZipDialog.new
88
+ zd.load(ARGV[0])
89
+
90
+ a.mainWidget = zd
91
+ zd.show
92
+ a.exec
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $: << '../lib'
4
+
5
+ require 'zip'
6
+
7
+ include Zip
8
+
9
+ OutputStream.open('simple.zip') do |zos|
10
+ zos.put_next_entry 'entry.txt'
11
+ zos.puts 'Hello world'
12
+ end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $VERBOSE = true
4
+
5
+ $: << '../lib'
6
+
7
+ require 'zip'
8
+ require 'find'
9
+
10
+ module Zip
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)
16
+ begin
17
+ Zip::File.foreach(fileName) do |zipEntry|
18
+ yield(fileName + File::SEPARATOR + zipEntry.to_s)
19
+ end
20
+ rescue Errno::EACCES => ex
21
+ puts ex
22
+ end
23
+ end
24
+ end
25
+
26
+ def self.find_file(path, fileNamePattern, zipFilePattern = /\.zip$/i)
27
+ find(path, zipFilePattern) do |fileName|
28
+ yield(fileName) if fileNamePattern.match(fileName)
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ if $0 == __FILE__
35
+ module ZipFindConsoleRunner
36
+ PATH_ARG_INDEX = 0
37
+ FILENAME_PATTERN_ARG_INDEX = 1
38
+ ZIPFILE_PATTERN_ARG_INDEX = 2
39
+
40
+ def self.run(args)
41
+ check_args(args)
42
+ Zip::ZipFind.find_file(args[PATH_ARG_INDEX],
43
+ args[FILENAME_PATTERN_ARG_INDEX],
44
+ args[ZIPFILE_PATTERN_ARG_INDEX]) do |fileName|
45
+ report_entry_found fileName
46
+ end
47
+ end
48
+
49
+ def self.check_args(args)
50
+ if args.size != 3
51
+ usage
52
+ exit
53
+ end
54
+ end
55
+
56
+ def self.usage
57
+ puts "Usage: #{$0} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
58
+ end
59
+
60
+ def self.report_entry_found(fileName)
61
+ puts fileName
62
+ end
63
+ end
64
+
65
+ ZipFindConsoleRunner.run(ARGV)
66
+ end