class Roast::Host
Constants
- HOST_PATTERN
- IP_PATTERN
Attributes
alias[RW]
hostname[R]
ip_address[R]
state[R]
Public Class Methods
new(source, hostname)
click to toggle source
# File lib/roast/host.rb, line 11 def initialize(source, hostname) if source !~ IP_PATTERN @alias = source.chomp resolve_source else @ip_address = source.chomp end @hostname = hostname.chomp.downcase @state = 'enabled' validate! end
Public Instance Methods
disable!()
click to toggle source
# File lib/roast/host.rb, line 33 def disable! @state = 'disabled' end
disabled?()
click to toggle source
# File lib/roast/host.rb, line 41 def disabled? @state == 'disabled' end
enable!()
click to toggle source
# File lib/roast/host.rb, line 37 def enable! @state = 'enabled' end
enabled?()
click to toggle source
# File lib/roast/host.rb, line 45 def enabled? @state == 'enabled' end
resolve_source()
click to toggle source
# File lib/roast/host.rb, line 27 def resolve_source @ip_address = IPSocket.getaddress(@alias) rescue SocketError raise ArgumentError, "unable to determine the ip address of `#{@alias}'" end
validate!()
click to toggle source
# File lib/roast/host.rb, line 23 def validate! raise ArgumentError, "`#{hostname}' is an invalid hostname" unless hostname =~ HOST_PATTERN end