class Middleman::DnsResolver::HostsResolver

Use network name server to resolve ips and names

def getaddresses(name)

Returns:
  • (Array) -

Parameters:
  • name (#to_s) --
def getaddresses(name)
  resolver.getaddresses(name.to_s).map(&:to_s)
rescue Resolv::ResolvError
  []
end

def getnames(ip)

Returns:
  • (Array) -

Parameters:
  • ip (#to_s) --
def getnames(ip)
  resolver.getnames(ip.to_s).map(&:to_s)
rescue Resolv::ResolvError
  []
end

def hosts_file

Returns:
  • (Array) -
def hosts_file
  return [ENV['MM_HOSTSRC']] if ENV.key?('MM_HOSTSRC') && File.file?(ENV['MM_HOSTSRC'])
  []
end

def initialize(opts={})

def initialize(opts={})
  # using the splat operator works around a non-existing HOSTSRC variable
  # using nil as input does not work, but `*[]` does and then Resolv::Hosts
  # uses its defaults
  @resolver = opts.fetch(:resolver, Resolv::Hosts.new(*hosts_file))
end