class SSHKit::Host
Attributes
hostname[RW]
password[RW]
port[RW]
ssh_options[RW]
user[RW]
Public Class Methods
new(host_string_or_options_hash)
click to toggle source
# File lib/sshkit/host.rb, line 23 def initialize(host_string_or_options_hash) if host_string_or_options_hash == :local @local = true @hostname = "localhost" @user = ENV['USER'] || ENV['LOGNAME'] || ENV['USERNAME'] elsif !host_string_or_options_hash.is_a?(Hash) suitable_parsers = [ SimpleHostParser, HostWithPortParser, HostWithUsernameAndPortParser, IPv6HostWithPortParser, HostWithUsernameParser, ].select do |p| p.suitable?(host_string_or_options_hash) end if suitable_parsers.any? suitable_parsers.first.tap do |parser| @user, @hostname, @port = parser.new(host_string_or_options_hash).attributes end else raise UnparsableHostStringError, "Cannot parse host string #{host_string_or_options_hash}" end else host_string_or_options_hash.each do |key, value| if self.respond_to?("#{key}=") send("#{key}=", value) else raise ArgumentError, "Unknown host property #{key}" end end end end
Public Instance Methods
eql?(other_host)
click to toggle source
# File lib/sshkit/host.rb, line 70 def eql?(other_host) other_host.hash == hash end
hash()
click to toggle source
# File lib/sshkit/host.rb, line 62 def hash user.hash ^ hostname.hash ^ port.hash end
key=(new_key)
click to toggle source
# File lib/sshkit/host.rb, line 11 def key=(new_key) @keys = [new_key] end
keys()
click to toggle source
# File lib/sshkit/host.rb, line 19 def keys Array(@keys) end
keys=(new_keys)
click to toggle source
# File lib/sshkit/host.rb, line 15 def keys=(new_keys) @keys = new_keys end
local?()
click to toggle source
# File lib/sshkit/host.rb, line 58 def local? @local end
netssh_options()
click to toggle source
# File lib/sshkit/host.rb, line 80 def netssh_options {}.tap do |sho| sho[:keys] = keys if keys.any? sho[:port] = port if port sho[:user] = user if user sho[:password] = password if password sho[:forward_agent] = true end .merge(ssh_options || {}) end
properties()
click to toggle source
# File lib/sshkit/host.rb, line 91 def properties @properties ||= OpenStruct.new end
to_s()
click to toggle source
# File lib/sshkit/host.rb, line 76 def to_s hostname end
username()
click to toggle source
# File lib/sshkit/host.rb, line 66 def username user end