class Truemail::Dns::Worker

Constants

DEFAULT_DNS_PORT

Attributes

dns_gateway[R]

Public Class Methods

new(dns_servers) click to toggle source
Calls superclass method
# File lib/truemail/dns/worker.rb, line 12
def initialize(dns_servers)
  super(dns_servers.empty? ? nil : config_info(dns_servers))
end

Public Instance Methods

a_record(host_name) click to toggle source
# File lib/truemail/dns/worker.rb, line 20
def a_record(host_name)
  getaddress(host_name).to_s
end
a_records(host_name) click to toggle source
# File lib/truemail/dns/worker.rb, line 24
def a_records(host_name)
  getaddresses(host_name).map(&:to_s)
end
cname_records(host_name) click to toggle source
# File lib/truemail/dns/worker.rb, line 28
def cname_records(host_name)
  getresources(host_name, ::Resolv::DNS::Resource::IN::CNAME)
end
dns_lookup(host_address) click to toggle source
# File lib/truemail/dns/worker.rb, line 16
def dns_lookup(host_address)
  getname(host_address).to_s
end
mx_records(host_name) click to toggle source
# File lib/truemail/dns/worker.rb, line 32
def mx_records(host_name)
  getresources(host_name, ::Resolv::DNS::Resource::IN::MX)
end
ptr_records(host_address) click to toggle source
# File lib/truemail/dns/worker.rb, line 36
def ptr_records(host_address)
  getresources(host_address, ::Resolv::DNS::Resource::IN::PTR)
end

Private Instance Methods

config_info(dns_servers) click to toggle source
# File lib/truemail/dns/worker.rb, line 47
def config_info(dns_servers)
  @dns_gateway = { nameserver_port: dns_servers.map { |server| nameserver_port(server) } }
end
nameserver_port(server) click to toggle source
# File lib/truemail/dns/worker.rb, line 42
def nameserver_port(server)
  server_address, server_port = server.split(':')
  [server_address, server_port ? server_port.to_i : Truemail::Dns::Worker::DEFAULT_DNS_PORT]
end