chef-winrm-fs 1.3.7 → 1.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53896e3ea3477e023ba00153d76610ac69701e467b3af19dd3c3a99051a8825b
4
- data.tar.gz: b5fdc0e443bbe8c23380d9c0d8062554d521e40c97823daf9e3bed5f1f249166
3
+ metadata.gz: 10d727aedcfc19fe388fe16171a26b81500bd54fb4813c4bd56491f7dcab4e6e
4
+ data.tar.gz: ca50ec0aae1922be507ba7bf4d3100c1370b106ea5bc81a3a94dd190a50becdf
5
5
  SHA512:
6
- metadata.gz: 4571a3701855390c207cba5d1ac0ce3fe5aaf8ef8a388820c051ec16b47cda74bce4aae6bb5ed49e709c2c0fd5460f5c097fd18311b49777652d438f5fb8d975
7
- data.tar.gz: a90622ac3e83002808536d0353a74743c8ec11eb00077a5b15098245fcf703a098ae7c5f339a5d42e610fc548b262695a8ae0b7c431c1f6a3602f575ce3efa69
6
+ metadata.gz: 12d2e19272de8987b9d61fb6dd23f59f6c3bcab879c484ad64f56706638b4ddd967d09bbc5ab276c0d0fad372c1eaa8d0e96e37bdd4c94312dede98e2dcd3242
7
+ data.tar.gz: 414a4d89076494e67c57be9ab5ff9ca47e012e05e5f2489a265a26a07b14b4ebf5770bc9d2d70427f14a0fed24e1d3f7d776e7f8acab3c8769f842ff5dbd85aa
@@ -17,14 +17,14 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require 'benchmark' unless defined?(Benchmark)
21
- require 'csv' unless defined?(CSV)
22
- require 'digest' unless defined?(Digest)
23
- require 'securerandom' unless defined?(SecureRandom)
24
- require 'stringio' unless defined?(StringIO)
20
+ require "benchmark" unless defined?(Benchmark)
21
+ require "csv" unless defined?(CSV)
22
+ require "digest" unless defined?(Digest)
23
+ require "securerandom" unless defined?(SecureRandom)
24
+ require "stringio" unless defined?(StringIO)
25
25
 
26
- require 'chef-winrm/exceptions'
27
- require 'chef-winrm-fs/core/tmp_zip'
26
+ require "chef-winrm/exceptions"
27
+ require "chef-winrm-fs/core/tmp_zip"
28
28
 
29
29
  module WinRM
30
30
  module FS
@@ -38,7 +38,7 @@ module WinRM
38
38
  # Exception for the case where upload source contains more than one
39
39
  # StringIO object, or a combination of file/directory paths and StringIO object
40
40
  class UploadSourceError < StandardError
41
- def initialize(msg = 'Only a single StringIO object may be uploaded.')
41
+ def initialize(msg = "Only a single StringIO object may be uploaded.")
42
42
  super
43
43
  end
44
44
  end
@@ -126,7 +126,7 @@ module WinRM
126
126
  # @return [String] the Array pack template for Base64 encoding a stream
127
127
  # of data
128
128
  # @api private
129
- BASE64_PACK = 'm0'.freeze
129
+ BASE64_PACK = "m0".freeze
130
130
 
131
131
  # @return [String] the directory where temporary upload artifacts are
132
132
  # persisted
@@ -148,9 +148,9 @@ module WinRM
148
148
  def max_encoded_write
149
149
  @max_encoded_write ||= begin
150
150
  empty_command = WinRM::PSRP::MessageFactory.create_pipeline_message(
151
- '00000000-0000-0000-0000-000000000000',
152
- '00000000-0000-0000-0000-000000000000',
153
- stream_command('')
151
+ "00000000-0000-0000-0000-000000000000",
152
+ "00000000-0000-0000-0000-000000000000",
153
+ stream_command("")
154
154
  )
155
155
  shell.max_fragment_blob_size - empty_command.bytes.length
156
156
  end
@@ -166,7 +166,7 @@ module WinRM
166
166
  # @api private
167
167
  def reconcile_destinations!(files)
168
168
  files.each do |_, data|
169
- data['dst'] = File.join(data['dst'], File.basename(data['src'])) if data['target_is_folder'] == 'True'
169
+ data["dst"] = File.join(data["dst"], File.basename(data["src"])) if data["target_is_folder"] == "True"
170
170
  end
171
171
  end
172
172
 
@@ -185,12 +185,12 @@ module WinRM
185
185
  zip_sha1 = sha1sum(zip_io.path)
186
186
 
187
187
  hash[zip_sha1] = {
188
- 'src' => dir,
189
- 'src_zip' => zip_io.path.to_s,
190
- 'zip_io' => zip_io,
191
- 'tmpzip' => "#{TEMP_UPLOAD_DIRECTORY}\\tmpzip-#{zip_sha1}.zip",
192
- 'dst' => "#{remote}\\#{File.basename(dir)}",
193
- 'size' => File.size(zip_io.path)
188
+ "src" => dir,
189
+ "src_zip" => zip_io.path.to_s,
190
+ "zip_io" => zip_io,
191
+ "tmpzip" => "#{TEMP_UPLOAD_DIRECTORY}\\tmpzip-#{zip_sha1}.zip",
192
+ "dst" => "#{remote}\\#{File.basename(dir)}",
193
+ "size" => File.size(zip_io.path),
194
194
  }
195
195
  end
196
196
 
@@ -203,9 +203,9 @@ module WinRM
203
203
  def add_file_hash!(hash, local, remote)
204
204
  logger.debug "creating hash for file #{remote}"
205
205
  hash[sha1sum(local)] = {
206
- 'src' => local,
207
- 'dst' => remote,
208
- 'size' => local.is_a?(StringIO) ? local.size : File.size(local)
206
+ "src" => local,
207
+ "dst" => remote,
208
+ "size" => local.is_a?(StringIO) ? local.size : File.size(local),
209
209
  }
210
210
  end
211
211
 
@@ -218,9 +218,9 @@ module WinRM
218
218
  # @return [Hash] a report hash, keyed by the local SHA1 digest
219
219
  # @api private
220
220
  def check_files(files)
221
- logger.debug 'Running check_files.ps1'
221
+ logger.debug "Running check_files.ps1"
222
222
  hash_file = check_files_ps_hash(files)
223
- script = WinRM::FS::Scripts.render('check_files', hash_file: hash_file)
223
+ script = WinRM::FS::Scripts.render("check_files", hash_file: hash_file)
224
224
  parse_response(shell.run(script))
225
225
  end
226
226
 
@@ -235,10 +235,10 @@ module WinRM
235
235
  [
236
236
  sha1,
237
237
  {
238
- 'target' => data.fetch('tmpzip', data['dst']),
239
- 'src_basename' => data['src'].is_a?(StringIO) ? data['dst'] : File.basename(data['src']),
240
- 'dst' => data['dst']
241
- }
238
+ "target" => data.fetch("tmpzip", data["dst"]),
239
+ "src_basename" => data["src"].is_a?(StringIO) ? data["dst"] : File.basename(data["src"]),
240
+ "dst" => data["dst"],
241
+ },
242
242
  ]
243
243
  end
244
244
  ps_hash(Hash[hash])
@@ -250,10 +250,10 @@ module WinRM
250
250
  # @param files [Hash] a files hash
251
251
  # @api private
252
252
  def cleanup(files)
253
- files.select { |_, data| data.key?('zip_io') }.each do |sha1, data|
254
- data.fetch('zip_io').unlink
255
- files.fetch(sha1).delete('zip_io')
256
- logger.debug "Cleaned up src_zip #{data['src_zip']}"
253
+ files.select { |_, data| data.key?("zip_io") }.each do |sha1, data|
254
+ data.fetch("zip_io").unlink
255
+ files.fetch(sha1).delete("zip_io")
256
+ logger.debug "Cleaned up src_zip #{data["src_zip"]}"
257
257
  end
258
258
  end
259
259
 
@@ -270,11 +270,11 @@ module WinRM
270
270
  extracted_files = extract_files_ps_hash(files)
271
271
 
272
272
  if extracted_files == ps_hash({})
273
- logger.debug 'No remote files to extract, skipping'
273
+ logger.debug "No remote files to extract, skipping"
274
274
  {}
275
275
  else
276
- logger.debug 'Running extract_files.ps1'
277
- script = WinRM::FS::Scripts.render('extract_files', hash_file: extracted_files)
276
+ logger.debug "Running extract_files.ps1"
277
+ script = WinRM::FS::Scripts.render("extract_files", hash_file: extracted_files)
278
278
 
279
279
  parse_response(shell.run(script))
280
280
  end
@@ -288,11 +288,11 @@ module WinRM
288
288
  # @return [String] the inner contents of a PowerShell Hash Table
289
289
  # @api private
290
290
  def extract_files_ps_hash(files)
291
- file_data = files.select { |_, data| data.key?('tmpzip') }
291
+ file_data = files.select { |_, data| data.key?("tmpzip") }
292
292
 
293
293
  result = file_data.map do |sha1, data|
294
- val = { 'dst' => data['dst'] }
295
- val['tmpzip'] = data['tmpzip'] if data['tmpzip']
294
+ val = { "dst" => data["dst"] }
295
+ val["tmpzip"] = data["tmpzip"] if data["tmpzip"]
296
296
 
297
297
  [sha1, val]
298
298
  end
@@ -308,7 +308,7 @@ module WinRM
308
308
  total = 0 if total.nil?
309
309
  minutes = (total / 60).to_i
310
310
  seconds = (total - (minutes * 60))
311
- format('(%dm%.2fs)', minutes, seconds)
311
+ format("(%dm%.2fs)", minutes, seconds)
312
312
  end
313
313
 
314
314
  # Contructs a Hash of files or directories, keyed by the local SHA1
@@ -329,7 +329,7 @@ module WinRM
329
329
  else
330
330
  local = local.to_s
331
331
  expanded = File.expand_path(local)
332
- expanded += local[-1] if local.end_with?('/', '\\')
332
+ expanded += local[-1] if local.end_with?("/", "\\")
333
333
  if File.file?(expanded)
334
334
  add_file_hash!(hash, expanded, remote)
335
335
  elsif File.directory?(expanded)
@@ -387,7 +387,7 @@ module WinRM
387
387
  # @return [String] a whitespace padded string of the given length
388
388
  # @api private
389
389
  def pad(depth = 0)
390
- ' ' * depth
390
+ " " * depth
391
391
  end
392
392
 
393
393
  # Parses response of a PowerShell script or CMD command which contains
@@ -404,17 +404,17 @@ module WinRM
404
404
  if exitcode != 0
405
405
  raise FileTransporterFailed, "[#{self.class}] Upload failed " \
406
406
  "(exitcode: #{exitcode})\n#{stderr}"
407
- elsif stderr != '\r\n' && stderr != ''
407
+ elsif stderr != '\r\n' && stderr != ""
408
408
  raise FileTransporterFailed, "[#{self.class}] Upload failed " \
409
409
  "(exitcode: 0), but stderr present\n#{stderr}"
410
410
  end
411
411
 
412
- logger.debug 'Parsing CSV Response'
412
+ logger.debug "Parsing CSV Response"
413
413
  logger.debug output.stdout
414
414
 
415
415
  array = CSV.parse(output.stdout, headers: true).map(&:to_hash)
416
- array.each { |h| h.each { |key, value| h[key] = nil if value == '' } }
417
- Hash[array.map { |entry| [entry.fetch('src_sha1'), entry] }]
416
+ array.each { |h| h.each { |key, value| h[key] = nil if value == "" } }
417
+ Hash[array.map { |entry| [entry.fetch("src_sha1"), entry] }]
418
418
  end
419
419
 
420
420
  # Converts a Ruby hash into a PowerShell hash table, represented in a
@@ -429,10 +429,10 @@ module WinRM
429
429
  def ps_hash(obj, depth = 0)
430
430
  if obj.is_a?(Hash)
431
431
  obj.map do |k, v|
432
- %(#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)})
432
+ %{#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)}}
433
433
  end.join(";\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
434
434
  else
435
- %("#{obj}")
435
+ %{"#{obj}"}
436
436
  end
437
437
  end
438
438
 
@@ -456,7 +456,7 @@ module WinRM
456
456
  chunk = 1
457
457
  bytes = 0
458
458
  # Do not freeze this string
459
- buffer = ''
459
+ buffer = ""
460
460
  shell.run(<<-PS
461
461
  $to = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("#{dest}")
462
462
  $parent = Split-Path $to
@@ -486,7 +486,7 @@ module WinRM
486
486
  chunk += 1
487
487
  yield bytes if block_given?
488
488
  end
489
- shell.run('$fileStream.Dispose()')
489
+ shell.run("$fileStream.Dispose()")
490
490
  buffer = nil # rubocop:disable Lint/UselessAssignment
491
491
 
492
492
  [chunk - 1, bytes]
@@ -515,7 +515,7 @@ module WinRM
515
515
  if src.is_a?(StringIO)
516
516
  chunks, bytes = stream_upload(src, dest, &block)
517
517
  else
518
- File.open(src, 'rb') do |io|
518
+ File.open(src, "rb") do |io|
519
519
  chunks, bytes = stream_upload(io, dest, &block)
520
520
  end
521
521
  end
@@ -539,16 +539,16 @@ module WinRM
539
539
  def stream_upload_files(files)
540
540
  response = {}
541
541
  files.each do |sha1, data|
542
- src = data.fetch('src_zip', data['src'])
543
- if data['chk_dirty'] == 'True'
544
- response[sha1] = { 'dest' => data['tmpzip'] || data['dst'] }
545
- chunks, bytes = stream_upload_file(src, data['tmpzip'] || data['dst']) do |xfered|
546
- yield data['src'], xfered
542
+ src = data.fetch("src_zip", data["src"])
543
+ if data["chk_dirty"] == "True"
544
+ response[sha1] = { "dest" => data["tmpzip"] || data["dst"] }
545
+ chunks, bytes = stream_upload_file(src, data["tmpzip"] || data["dst"]) do |xfered|
546
+ yield data["src"], xfered
547
547
  end
548
- response[sha1]['chunks'] = chunks
549
- response[sha1]['xfered'] = bytes
548
+ response[sha1]["chunks"] = chunks
549
+ response[sha1]["xfered"] = bytes
550
550
  else
551
- logger.debug "File #{data['dst']} is up to date, skipping"
551
+ logger.debug "File #{data["dst"]} is up to date, skipping"
552
552
  end
553
553
  end
554
554
  response
@@ -563,7 +563,7 @@ module WinRM
563
563
  # @api private
564
564
  def total_base64_transfer_size(files)
565
565
  size = 0
566
- files.values.each { |file| size += file['size'] if file['chk_dirty'] == 'True' }
566
+ files.values.each { |file| size += file["size"] if file["chk_dirty"] == "True" }
567
567
  size / 3 * 4
568
568
  end
569
569
  end
@@ -17,10 +17,10 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require 'delegate'
21
- require 'pathname' unless defined?(Pathname)
22
- require 'tempfile' unless defined?(Tempfile)
23
- require 'zip' unless defined?(Zip)
20
+ require "delegate"
21
+ require "pathname" unless defined?(Pathname)
22
+ require "tempfile" unless defined?(Tempfile)
23
+ require "zip" unless defined?(Zip)
24
24
 
25
25
  module WinRM
26
26
  module FS
@@ -70,7 +70,7 @@ module WinRM
70
70
  def initialize(dir, logger = nil)
71
71
  @logger = logger || Logging.logger[self]
72
72
  @dir = clean_dirname(dir)
73
- @zip_io = Tempfile.open(['tmpzip-', '.zip'], binmode: true)
73
+ @zip_io = Tempfile.open(["tmpzip-", ".zip"], binmode: true)
74
74
  write_zip
75
75
  @zip_io.close
76
76
  end
@@ -113,13 +113,13 @@ module WinRM
113
113
  # directory, excluding directories
114
114
  # @api private
115
115
  def entries
116
- Pathname.glob(dir.join('**/.*')).push(*Pathname.glob(dir.join('**/*'))).delete_if(&:directory?).sort
116
+ Pathname.glob(dir.join("**/.*")).push(*Pathname.glob(dir.join("**/*"))).delete_if(&:directory?).sort
117
117
  end
118
118
 
119
119
  # (see Logging.log_subject)
120
120
  # @api private
121
121
  def log_subject
122
- @log_subject ||= [self.class.to_s.split('::').last, path].join('::')
122
+ @log_subject ||= [self.class.to_s.split("::").last, path].join("::")
123
123
  end
124
124
 
125
125
  # Adds all file entries to the Zip output stream.
@@ -134,16 +134,16 @@ module WinRM
134
134
  zip_entry(entry_path),
135
135
  nil, nil, ::Zip::Entry::DEFLATED, Zlib::BEST_COMPRESSION
136
136
  )
137
- entry.open('rb') { |src| IO.copy_stream(src, zos) }
137
+ entry.open("rb") { |src| IO.copy_stream(src, zos) }
138
138
  end
139
- logger.debug '=== All files added.'
139
+ logger.debug "=== All files added."
140
140
  end
141
141
 
142
142
  # Writes out a temporary Zip file.
143
143
  #
144
144
  # @api private
145
145
  def write_zip
146
- logger.debug 'Populating files'
146
+ logger.debug "Populating files"
147
147
  Zip::OutputStream.write_buffer(NoDupIO.new(zip_io)) do |zos|
148
148
  produce_zip_entries(zos)
149
149
  end
@@ -15,9 +15,9 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
 
18
- require 'chef-winrm' unless defined?(WinRM::Connection)
19
- require_relative 'scripts/scripts'
20
- require_relative 'core/file_transporter'
18
+ require "chef-winrm" unless defined?(WinRM::Connection)
19
+ require_relative "scripts/scripts"
20
+ require_relative "core/file_transporter"
21
21
 
22
22
  module WinRM
23
23
  module FS
@@ -34,9 +34,9 @@ module WinRM
34
34
  # otherwise ''
35
35
  # @param [String] The remote file path
36
36
  # @parms [String] The digest method
37
- def checksum(path, digest = 'SHA1')
37
+ def checksum(path, digest = "SHA1")
38
38
  @logger.debug("checksum with #{digest}: #{path}")
39
- script = WinRM::FS::Scripts.render('checksum', path: path, digest: digest)
39
+ script = WinRM::FS::Scripts.render("checksum", path: path, digest: digest)
40
40
  ps_run(script).exitcode == 0
41
41
  end
42
42
 
@@ -45,7 +45,7 @@ module WinRM
45
45
  # @return [Boolean] True if successful, otherwise false
46
46
  def create_dir(path)
47
47
  @logger.debug("create_dir: #{path}")
48
- script = WinRM::FS::Scripts.render('create_dir', path: path)
48
+ script = WinRM::FS::Scripts.render("create_dir", path: path)
49
49
  ps_run(script).exitcode == 0
50
50
  end
51
51
 
@@ -54,7 +54,7 @@ module WinRM
54
54
  # @return [Boolean] True if successful, otherwise False
55
55
  def delete(path)
56
56
  @logger.debug("deleting: #{path}")
57
- script = WinRM::FS::Scripts.render('delete', path: path)
57
+ script = WinRM::FS::Scripts.render("delete", path: path)
58
58
  ps_run(script).exitcode == 0
59
59
  end
60
60
 
@@ -70,7 +70,7 @@ module WinRM
70
70
 
71
71
  return false if output.exitcode >= 1
72
72
 
73
- File.open(local_path, 'wb') do |fd|
73
+ File.open(local_path, "wb") do |fd|
74
74
  out = _write_file(fd, output)
75
75
  index += out.length
76
76
  until out.empty?
@@ -86,12 +86,12 @@ module WinRM
86
86
  # rubocop:enable Metrics/MethodLength
87
87
 
88
88
  def _output_from_file(remote_path, chunk_size, index)
89
- script = WinRM::FS::Scripts.render('download', path: remote_path, chunk_size: chunk_size, index: index)
89
+ script = WinRM::FS::Scripts.render("download", path: remote_path, chunk_size: chunk_size, index: index)
90
90
  ps_run(script)
91
91
  end
92
92
 
93
93
  def _write_file(tofd, output)
94
- contents = output.stdout.gsub('\n\r', '')
94
+ contents = output.stdout.gsub('\n\r', "")
95
95
  out = Base64.decode64(contents)
96
96
  out = out[0, out.length - 1] if out.end_with? "\x00"
97
97
  return out if out.empty?
@@ -105,7 +105,7 @@ module WinRM
105
105
  # @return [Boolean] True if the file/dir exists, otherwise false.
106
106
  def exists?(path)
107
107
  @logger.debug("exists?: #{path}")
108
- script = WinRM::FS::Scripts.render('exists', path: path)
108
+ script = WinRM::FS::Scripts.render("exists", path: path)
109
109
  ps_run(script).exitcode == 0
110
110
  end
111
111
 
@@ -114,7 +114,7 @@ module WinRM
114
114
  # @return [String] Full path to the temp directory
115
115
  def temp_dir
116
116
  @temp_dir ||= begin
117
- ps_run('$env:TEMP').stdout.chomp.tr('\\', '/')
117
+ ps_run("$env:TEMP").stdout.chomp.tr("\\", "/")
118
118
  end
119
119
  end
120
120
 
@@ -162,7 +162,7 @@ module WinRM
162
162
  local_path = File.join(local_path, File.basename(remote_path.to_s)) if first
163
163
  FileUtils.mkdir_p(local_path) unless File.directory?(local_path)
164
164
  command = "Get-ChildItem #{remote_path} | Select-Object Name"
165
- @connection.shell(:powershell) { |e| e.run(command) }.stdout.strip.split(/\n/).drop(2).each do |file|
165
+ @connection.shell(:powershell) { |e| e.run(command) }.stdout.strip.split("\n").drop(2).each do |file|
166
166
  download(File.join(remote_path.to_s, file.strip), File.join(local_path, file.strip), chunk_size, false)
167
167
  end
168
168
  end
@@ -15,7 +15,7 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
 
18
- require 'erubi'
18
+ require "erubi"
19
19
 
20
20
  module WinRM
21
21
  module FS
data/lib/chef-winrm-fs.rb CHANGED
@@ -15,11 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
 
18
- require 'chef-winrm' unless defined?(WinRM::Connection)
19
- require 'logger'
20
- require 'pathname' unless defined?(Pathname)
21
- require_relative 'chef-winrm-fs/exceptions'
22
- require_relative 'chef-winrm-fs/file_manager'
18
+ require "chef-winrm" unless defined?(WinRM::Connection)
19
+ require "logger"
20
+ require "pathname" unless defined?(Pathname)
21
+ require_relative "chef-winrm-fs/exceptions"
22
+ require_relative "chef-winrm-fs/file_manager"
23
23
 
24
24
  module WinRM
25
25
  # WinRM File System
metadata CHANGED
@@ -1,30 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-winrm-fs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Neal
8
8
  - Matt Wrock
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-02-04 00:00:00.000000000 Z
12
+ date: 2025-07-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef-winrm
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 2.3.11
20
+ version: '2.4'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 2.3.11
27
+ version: '2.4'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: erubi
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +73,34 @@ dependencies:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: csv
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.3'
90
+ - !ruby/object:Gem::Dependency
91
+ name: benchmark
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.4.0
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.4.0
76
104
  - !ruby/object:Gem::Dependency
77
105
  name: pry
78
106
  requirement: !ruby/object:Gem::Requirement
@@ -116,19 +144,19 @@ dependencies:
116
144
  - !ruby/object:Gem::Version
117
145
  version: '3.0'
118
146
  - !ruby/object:Gem::Dependency
119
- name: rubocop
147
+ name: cookstyle
120
148
  requirement: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 1.26.0
152
+ version: '8.1'
125
153
  type: :development
126
154
  prerelease: false
127
155
  version_requirements: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: 1.26.0
159
+ version: '8.1'
132
160
  description: " Ruby library for file system operations via Windows Remote Management\n"
133
161
  email:
134
162
  - sneal@sneal.net
@@ -160,7 +188,7 @@ homepage: http://github.com/WinRb/winrm-fs
160
188
  licenses:
161
189
  - Apache-2.0
162
190
  metadata: {}
163
- post_install_message:
191
+ post_install_message:
164
192
  rdoc_options:
165
193
  - "-x"
166
194
  - test/
@@ -172,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
200
  requirements:
173
201
  - - ">="
174
202
  - !ruby/object:Gem::Version
175
- version: '3.0'
203
+ version: '3.1'
176
204
  required_rubygems_version: !ruby/object:Gem::Requirement
177
205
  requirements:
178
206
  - - ">="
@@ -180,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
208
  version: '0'
181
209
  requirements: []
182
210
  rubygems_version: 3.3.27
183
- signing_key:
211
+ signing_key:
184
212
  specification_version: 4
185
213
  summary: WinRM File System
186
214
  test_files: []