class AutomateIt::AddressManager::Portable
AddressManager::Portable¶ ↑
A pure-Ruby, portable driver for the AddressManager which provides minimal support for querying the hostname using sockets. Although it lacks advanced features found in other drivers, it will work on all platforms.
Public Instance Methods
addresses()
click to toggle source
See AddressManager#addresses
# File lib/automateit/address_manager/portable.rb, line 32 def addresses results = Set.new("127.0.0.1") results.merge(TCPSocket.gethostbyname(Socket.gethostname)[3]) rescue SocketError return results.flatten end
has?(opts)
click to toggle source
See AddressManager#has?
# File lib/automateit/address_manager/portable.rb, line 13 def has?(opts) raise NotImplementedError.new("this driver doesn't support queries for devices or labels") if opts[:device] or opts[:label] result = true result &= addresses.include?(opts[:address]) if opts[:address] return result end
hostnames()
click to toggle source
See AddressManager#hostnames
# File lib/automateit/address_manager/portable.rb, line 21 def hostnames results = Set.new results << Socket.gethostname results.merge(Socket.gethostbyname(Socket.gethostname)[1]) rescue SocketError results.each{|name| results.merge(hostnames_for(name))} results << "localhost" return results.to_a.sort end