chef-winrm-fs 1.3.7 → 1.4.0

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: ff63f900e8d92ec0618ea948cbd905f183f3b5551e5f01ae4b981f1baf6d06c5
4
+ data.tar.gz: bc8a1f987323e2a59ed256939b999354600821816e8861af06aa8885ed756641
5
5
  SHA512:
6
- metadata.gz: 4571a3701855390c207cba5d1ac0ce3fe5aaf8ef8a388820c051ec16b47cda74bce4aae6bb5ed49e709c2c0fd5460f5c097fd18311b49777652d438f5fb8d975
7
- data.tar.gz: a90622ac3e83002808536d0353a74743c8ec11eb00077a5b15098245fcf703a098ae7c5f339a5d42e610fc548b262695a8ae0b7c431c1f6a3602f575ce3efa69
6
+ metadata.gz: 44a9f86a242bfdd119c7abf88a85ae5e873e7619c3f26fdc290cce9be1724eee305bdd0e834e6db503e1386f2b26a6a9c10baf3066802c444b406807588f3976
7
+ data.tar.gz: c1fb676b22ffce03a6392b5c0f9817b69426d1ae64eb30b90c705256f2a3c18104eeddc96f6a480b9199c4e4043726b7b883a3145e8ad97508bc5c8caa0f01aa
@@ -16,15 +16,21 @@
16
16
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
+ $VERBOSE = true
19
20
 
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)
21
+ require "benchmark" unless defined?(Benchmark)
25
22
 
26
- require 'chef-winrm/exceptions'
27
- require 'chef-winrm-fs/core/tmp_zip'
23
+ # require "pry"
24
+ # require "pry-byebug" if defined?(PryByebug)
25
+ # binding.pry
26
+
27
+ require "csv" unless defined?(CSV)
28
+ require "digest" unless defined?(Digest)
29
+ require "securerandom" unless defined?(SecureRandom)
30
+ require "stringio" unless defined?(StringIO)
31
+
32
+ require "chef-winrm/exceptions"
33
+ require "chef-winrm-fs/core/tmp_zip"
28
34
 
29
35
  module WinRM
30
36
  module FS
@@ -38,7 +44,7 @@ module WinRM
38
44
  # Exception for the case where upload source contains more than one
39
45
  # StringIO object, or a combination of file/directory paths and StringIO object
40
46
  class UploadSourceError < StandardError
41
- def initialize(msg = 'Only a single StringIO object may be uploaded.')
47
+ def initialize(msg = "Only a single StringIO object may be uploaded.")
42
48
  super
43
49
  end
44
50
  end
@@ -126,7 +132,7 @@ module WinRM
126
132
  # @return [String] the Array pack template for Base64 encoding a stream
127
133
  # of data
128
134
  # @api private
129
- BASE64_PACK = 'm0'.freeze
135
+ BASE64_PACK = "m0".freeze
130
136
 
131
137
  # @return [String] the directory where temporary upload artifacts are
132
138
  # persisted
@@ -148,9 +154,9 @@ module WinRM
148
154
  def max_encoded_write
149
155
  @max_encoded_write ||= begin
150
156
  empty_command = WinRM::PSRP::MessageFactory.create_pipeline_message(
151
- '00000000-0000-0000-0000-000000000000',
152
- '00000000-0000-0000-0000-000000000000',
153
- stream_command('')
157
+ "00000000-0000-0000-0000-000000000000",
158
+ "00000000-0000-0000-0000-000000000000",
159
+ stream_command("")
154
160
  )
155
161
  shell.max_fragment_blob_size - empty_command.bytes.length
156
162
  end
@@ -166,7 +172,7 @@ module WinRM
166
172
  # @api private
167
173
  def reconcile_destinations!(files)
168
174
  files.each do |_, data|
169
- data['dst'] = File.join(data['dst'], File.basename(data['src'])) if data['target_is_folder'] == 'True'
175
+ data["dst"] = File.join(data["dst"], File.basename(data["src"])) if data["target_is_folder"] == "True"
170
176
  end
171
177
  end
172
178
 
@@ -185,12 +191,12 @@ module WinRM
185
191
  zip_sha1 = sha1sum(zip_io.path)
186
192
 
187
193
  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)
194
+ "src" => dir,
195
+ "src_zip" => zip_io.path.to_s,
196
+ "zip_io" => zip_io,
197
+ "tmpzip" => "#{TEMP_UPLOAD_DIRECTORY}\\tmpzip-#{zip_sha1}.zip",
198
+ "dst" => "#{remote}\\#{File.basename(dir)}",
199
+ "size" => File.size(zip_io.path),
194
200
  }
195
201
  end
196
202
 
@@ -203,9 +209,9 @@ module WinRM
203
209
  def add_file_hash!(hash, local, remote)
204
210
  logger.debug "creating hash for file #{remote}"
205
211
  hash[sha1sum(local)] = {
206
- 'src' => local,
207
- 'dst' => remote,
208
- 'size' => local.is_a?(StringIO) ? local.size : File.size(local)
212
+ "src" => local,
213
+ "dst" => remote,
214
+ "size" => local.is_a?(StringIO) ? local.size : File.size(local),
209
215
  }
210
216
  end
211
217
 
@@ -218,9 +224,9 @@ module WinRM
218
224
  # @return [Hash] a report hash, keyed by the local SHA1 digest
219
225
  # @api private
220
226
  def check_files(files)
221
- logger.debug 'Running check_files.ps1'
227
+ logger.debug "Running check_files.ps1"
222
228
  hash_file = check_files_ps_hash(files)
223
- script = WinRM::FS::Scripts.render('check_files', hash_file: hash_file)
229
+ script = WinRM::FS::Scripts.render("check_files", hash_file: hash_file)
224
230
  parse_response(shell.run(script))
225
231
  end
226
232
 
@@ -235,10 +241,10 @@ module WinRM
235
241
  [
236
242
  sha1,
237
243
  {
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
- }
244
+ "target" => data.fetch("tmpzip", data["dst"]),
245
+ "src_basename" => data["src"].is_a?(StringIO) ? data["dst"] : File.basename(data["src"]),
246
+ "dst" => data["dst"],
247
+ },
242
248
  ]
243
249
  end
244
250
  ps_hash(Hash[hash])
@@ -250,10 +256,10 @@ module WinRM
250
256
  # @param files [Hash] a files hash
251
257
  # @api private
252
258
  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']}"
259
+ files.select { |_, data| data.key?("zip_io") }.each do |sha1, data|
260
+ data.fetch("zip_io").unlink
261
+ files.fetch(sha1).delete("zip_io")
262
+ logger.debug "Cleaned up src_zip #{data["src_zip"]}"
257
263
  end
258
264
  end
259
265
 
@@ -270,11 +276,11 @@ module WinRM
270
276
  extracted_files = extract_files_ps_hash(files)
271
277
 
272
278
  if extracted_files == ps_hash({})
273
- logger.debug 'No remote files to extract, skipping'
279
+ logger.debug "No remote files to extract, skipping"
274
280
  {}
275
281
  else
276
- logger.debug 'Running extract_files.ps1'
277
- script = WinRM::FS::Scripts.render('extract_files', hash_file: extracted_files)
282
+ logger.debug "Running extract_files.ps1"
283
+ script = WinRM::FS::Scripts.render("extract_files", hash_file: extracted_files)
278
284
 
279
285
  parse_response(shell.run(script))
280
286
  end
@@ -288,11 +294,11 @@ module WinRM
288
294
  # @return [String] the inner contents of a PowerShell Hash Table
289
295
  # @api private
290
296
  def extract_files_ps_hash(files)
291
- file_data = files.select { |_, data| data.key?('tmpzip') }
297
+ file_data = files.select { |_, data| data.key?("tmpzip") }
292
298
 
293
299
  result = file_data.map do |sha1, data|
294
- val = { 'dst' => data['dst'] }
295
- val['tmpzip'] = data['tmpzip'] if data['tmpzip']
300
+ val = { "dst" => data["dst"] }
301
+ val["tmpzip"] = data["tmpzip"] if data["tmpzip"]
296
302
 
297
303
  [sha1, val]
298
304
  end
@@ -308,7 +314,7 @@ module WinRM
308
314
  total = 0 if total.nil?
309
315
  minutes = (total / 60).to_i
310
316
  seconds = (total - (minutes * 60))
311
- format('(%dm%.2fs)', minutes, seconds)
317
+ format("(%dm%.2fs)", minutes, seconds)
312
318
  end
313
319
 
314
320
  # Contructs a Hash of files or directories, keyed by the local SHA1
@@ -329,7 +335,7 @@ module WinRM
329
335
  else
330
336
  local = local.to_s
331
337
  expanded = File.expand_path(local)
332
- expanded += local[-1] if local.end_with?('/', '\\')
338
+ expanded += local[-1] if local.end_with?("/", "\\")
333
339
  if File.file?(expanded)
334
340
  add_file_hash!(hash, expanded, remote)
335
341
  elsif File.directory?(expanded)
@@ -387,7 +393,7 @@ module WinRM
387
393
  # @return [String] a whitespace padded string of the given length
388
394
  # @api private
389
395
  def pad(depth = 0)
390
- ' ' * depth
396
+ " " * depth
391
397
  end
392
398
 
393
399
  # Parses response of a PowerShell script or CMD command which contains
@@ -404,17 +410,17 @@ module WinRM
404
410
  if exitcode != 0
405
411
  raise FileTransporterFailed, "[#{self.class}] Upload failed " \
406
412
  "(exitcode: #{exitcode})\n#{stderr}"
407
- elsif stderr != '\r\n' && stderr != ''
413
+ elsif stderr != '\r\n' && stderr != ""
408
414
  raise FileTransporterFailed, "[#{self.class}] Upload failed " \
409
415
  "(exitcode: 0), but stderr present\n#{stderr}"
410
416
  end
411
417
 
412
- logger.debug 'Parsing CSV Response'
418
+ logger.debug "Parsing CSV Response"
413
419
  logger.debug output.stdout
414
420
 
415
421
  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] }]
422
+ array.each { |h| h.each { |key, value| h[key] = nil if value == "" } }
423
+ Hash[array.map { |entry| [entry.fetch("src_sha1"), entry] }]
418
424
  end
419
425
 
420
426
  # Converts a Ruby hash into a PowerShell hash table, represented in a
@@ -429,10 +435,10 @@ module WinRM
429
435
  def ps_hash(obj, depth = 0)
430
436
  if obj.is_a?(Hash)
431
437
  obj.map do |k, v|
432
- %(#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)})
438
+ %{#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)}}
433
439
  end.join(";\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
434
440
  else
435
- %("#{obj}")
441
+ %{"#{obj}"}
436
442
  end
437
443
  end
438
444
 
@@ -456,7 +462,7 @@ module WinRM
456
462
  chunk = 1
457
463
  bytes = 0
458
464
  # Do not freeze this string
459
- buffer = ''
465
+ buffer = ""
460
466
  shell.run(<<-PS
461
467
  $to = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("#{dest}")
462
468
  $parent = Split-Path $to
@@ -486,7 +492,7 @@ module WinRM
486
492
  chunk += 1
487
493
  yield bytes if block_given?
488
494
  end
489
- shell.run('$fileStream.Dispose()')
495
+ shell.run("$fileStream.Dispose()")
490
496
  buffer = nil # rubocop:disable Lint/UselessAssignment
491
497
 
492
498
  [chunk - 1, bytes]
@@ -515,7 +521,7 @@ module WinRM
515
521
  if src.is_a?(StringIO)
516
522
  chunks, bytes = stream_upload(src, dest, &block)
517
523
  else
518
- File.open(src, 'rb') do |io|
524
+ File.open(src, "rb") do |io|
519
525
  chunks, bytes = stream_upload(io, dest, &block)
520
526
  end
521
527
  end
@@ -539,16 +545,16 @@ module WinRM
539
545
  def stream_upload_files(files)
540
546
  response = {}
541
547
  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
548
+ src = data.fetch("src_zip", data["src"])
549
+ if data["chk_dirty"] == "True"
550
+ response[sha1] = { "dest" => data["tmpzip"] || data["dst"] }
551
+ chunks, bytes = stream_upload_file(src, data["tmpzip"] || data["dst"]) do |xfered|
552
+ yield data["src"], xfered
547
553
  end
548
- response[sha1]['chunks'] = chunks
549
- response[sha1]['xfered'] = bytes
554
+ response[sha1]["chunks"] = chunks
555
+ response[sha1]["xfered"] = bytes
550
556
  else
551
- logger.debug "File #{data['dst']} is up to date, skipping"
557
+ logger.debug "File #{data["dst"]} is up to date, skipping"
552
558
  end
553
559
  end
554
560
  response
@@ -563,7 +569,7 @@ module WinRM
563
569
  # @api private
564
570
  def total_base64_transfer_size(files)
565
571
  size = 0
566
- files.values.each { |file| size += file['size'] if file['chk_dirty'] == 'True' }
572
+ files.values.each { |file| size += file["size"] if file["chk_dirty"] == "True" }
567
573
  size / 3 * 4
568
574
  end
569
575
  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.0
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-04-24 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: []