class Net::SCP

def self.download!(host, username, remote, local=nil, options={}, &progress)

progress (see "Progress Reporting", under Net::SCP).
to the #download! method. If a block is given, it will be used to report
options (e.g., to set the password, etc.). All other options are passed
:ssh key, the value for that will be passed to the SSH connection as
download from +remote+ to +local+. If the +options+ hash includes an
instantiates a new SCP session on top of it, and then begins a
Starts up a new SSH connection using the +host+ and +username+ parameters,
def self.download!(host, username, remote, local=nil, options={}, &progress)
  options = options.dup
  start(host, username, options.delete(:ssh) || {}) do |scp|
    return scp.download!(remote, local, options, &progress)
  end
end