Class: URI::SCP

Inherits:
Generic
  • Object
show all
Includes:
OpenURI::OpenRead
Defined in:
lib/uri/scp.rb,
lib/uri/open-scp.rb

Constant Summary collapse

DEFAULT_PORT =
22
COMPONENT =
[
  :scheme,
  :userinfo,
  :host, :port, :path,
  :query  
].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ SCP


20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/uri/scp.rb', line 20

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

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options


14
15
16
# File 'lib/uri/scp.rb', line 14

def options
  @options
end

Class Method Details

.new2(user, password, host, port, path, query) ⇒ Object


16
17
18
# File 'lib/uri/scp.rb', line 16

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

Instance Method Details

#buffer_open(buf, proxy, open_options) ⇒ Object


8
9
10
11
12
13
# File 'lib/uri/open-scp.rb', line 8

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, open_options, &progress)
  buf.io.rewind
end