Class: Rpremote::RecursiveCopy

Inherits:
Object
  • Object
show all
Defined in:
lib/rpremote/recursive_copy.rb,
sig/rpremote.rbs

Instance Method Summary collapse

Constructor Details

#initialize(output:, serial: Serial, device: Device) ⇒ RecursiveCopy

Returns a new instance of RecursiveCopy.

Parameters:

  • output: (IO)
  • serial: (Object) (defaults to: Serial)
  • device: (Object) (defaults to: Device)


5
6
7
8
9
# File 'lib/rpremote/recursive_copy.rb', line 5

def initialize(output:, serial: Serial, device: Device)
  @output = output
  @serial = serial
  @device = device
end

Instance Method Details

#call(source, destination, options) ⇒ void

This method returns an undefined value.

Parameters:

  • source (String)
  • destination (String)
  • options (Hash[Symbol, untyped])


11
12
13
14
15
16
17
18
19
20
# File 'lib/rpremote/recursive_copy.rb', line 11

def call(source, destination, options)
  validate!(source, destination)
  remote_root = RemotePath.validate(destination)
  directories, files = collect(source, remote_root)
  create_directories(directories, options)
  upload_files(files, options)
  output.puts("uploaded #{files.length} files: #{source} -> #{destination}")
rescue Errno::ENOENT => e
  raise ArgumentError, e.message
end