Class: SSHKit::Host
- Inherits:
-
Object
- Object
- SSHKit::Host
- Defined in:
- lib/sshkit/host.rb
Instance Attribute Summary collapse
-
#hostname ⇒ Object
Returns the value of attribute hostname.
-
#password ⇒ Object
Returns the value of attribute password.
-
#port ⇒ Object
Returns the value of attribute port.
-
#ssh_options ⇒ Object
Returns the value of attribute ssh_options.
-
#user ⇒ Object
Returns the value of attribute user.
Instance Method Summary collapse
- #eql?(other_host) ⇒ Boolean (also: #==, #equal?)
- #first_suitable_parser(host) ⇒ Object
- #hash ⇒ Object
-
#initialize(host_string_or_options_hash) ⇒ Host
constructor
A new instance of Host.
- #key=(new_key) ⇒ Object
- #keys ⇒ Object
- #keys=(new_keys) ⇒ Object
- #local? ⇒ Boolean
- #netssh_options ⇒ Object
- #properties ⇒ Object
- #to_s ⇒ Object
- #username ⇒ Object
Constructor Details
#initialize(host_string_or_options_hash) ⇒ Host
Returns a new instance of Host.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sshkit/host.rb', line 23 def initialize() @keys = [] @local = false if == :local @local = true @hostname = "localhost" @user = ENV['USER'] || ENV['LOGNAME'] || ENV['USERNAME'] elsif !.is_a?(Hash) @user, @hostname, @port = first_suitable_parser().attributes else .each do |key, value| if self.respond_to?("#{key}=") send("#{key}=", value) else raise ArgumentError, "Unknown host property #{key}" end end end end |
Instance Attribute Details
#hostname ⇒ Object
Returns the value of attribute hostname.
9 10 11 |
# File 'lib/sshkit/host.rb', line 9 def hostname @hostname end |
#password ⇒ Object
Returns the value of attribute password.
9 10 11 |
# File 'lib/sshkit/host.rb', line 9 def password @password end |
#port ⇒ Object
Returns the value of attribute port.
9 10 11 |
# File 'lib/sshkit/host.rb', line 9 def port @port end |
#ssh_options ⇒ Object
Returns the value of attribute ssh_options.
9 10 11 |
# File 'lib/sshkit/host.rb', line 9 def @ssh_options end |
#user ⇒ Object
Returns the value of attribute user.
9 10 11 |
# File 'lib/sshkit/host.rb', line 9 def user @user end |
Instance Method Details
#eql?(other_host) ⇒ Boolean Also known as: ==, equal?
56 57 58 |
# File 'lib/sshkit/host.rb', line 56 def eql?(other_host) other_host.hash == hash end |
#first_suitable_parser(host) ⇒ Object
81 82 83 84 85 |
# File 'lib/sshkit/host.rb', line 81 def first_suitable_parser(host) parser = PARSERS.find{|p| p.suitable?(host) } fail UnparsableHostStringError, "Cannot parse host string #{host}" if parser.nil? parser.new(host) end |
#hash ⇒ Object
48 49 50 |
# File 'lib/sshkit/host.rb', line 48 def hash user.hash ^ hostname.hash ^ port.hash end |
#key=(new_key) ⇒ Object
11 12 13 |
# File 'lib/sshkit/host.rb', line 11 def key=(new_key) @keys = [new_key] end |
#keys ⇒ Object
19 20 21 |
# File 'lib/sshkit/host.rb', line 19 def keys Array(@keys) end |
#keys=(new_keys) ⇒ Object
15 16 17 |
# File 'lib/sshkit/host.rb', line 15 def keys=(new_keys) @keys = new_keys end |
#local? ⇒ Boolean
44 45 46 |
# File 'lib/sshkit/host.rb', line 44 def local? @local end |
#netssh_options ⇒ Object
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/sshkit/host.rb', line 66 def {}.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( || {}) end |
#properties ⇒ Object
77 78 79 |
# File 'lib/sshkit/host.rb', line 77 def properties @properties ||= OpenStruct.new end |
#to_s ⇒ Object
62 63 64 |
# File 'lib/sshkit/host.rb', line 62 def to_s hostname end |
#username ⇒ Object
52 53 54 |
# File 'lib/sshkit/host.rb', line 52 def username user end |