class URI::SCP

def self.new2(user, password, host, port, path, query)

def self.new2(user, password, host, port, path, query)
  new('scp', [user, password], host, port, nil, path, nil, query)
end

def buffer_open(buf, proxy, open_options)

def buffer_open(buf, proxy, open_options)
  options = open_options.merge(:port => port, :password => password)
  progress = options.delete(:progress_proc)
  buf << Net::SCP.download!(host, user, path, nil, options, &progress)
  buf.io.rewind
end

def initialize(*args)

def initialize(*args)
  super(*args)
  @options = Hash.new
  (query || "").split(/&/).each do |pair|
    name, value = pair.split(/=/, 2)
    opt_name = name.to_sym
    values = value.split(/,/).map { |v| v.to_i.to_s == v ? v.to_i : v }
    values = values.first if values.length == 1
    options[opt_name] = values
  end
end