class GitHubPages::HealthCheck::Resolver
Constants
- DEFAULT_RESOLVER_OPTIONS
- PUBLIC_NAMESERVERS
Attributes
domain[R]
nameservers[R]
Public Class Methods
default_resolver()
click to toggle source
# File lib/github-pages-health-check/resolver.rb, line 18 def default_resolver @default_resolver ||= Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS) end
new(domain, nameservers: :default)
click to toggle source
Create a new resolver.
domain - the domain we’re getting answers for nameserver - (optional) a case
# File lib/github-pages-health-check/resolver.rb, line 29 def initialize(domain, nameservers: :default) @domain = domain @nameservers = nameservers end
Public Instance Methods
query(type)
click to toggle source
# File lib/github-pages-health-check/resolver.rb, line 34 def query(type) resolver.query(Addressable::IDNA.to_ascii(domain), type).answer end
Private Instance Methods
resolver()
click to toggle source
# File lib/github-pages-health-check/resolver.rb, line 40 def resolver @resolver ||= case nameservers when :default self.class.default_resolver when :authoritative Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS.merge( :nameservers => authoritative_nameservers )) when :public Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS.merge( :nameservers => PUBLIC_NAMESERVERS )) when Array Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS.merge( :nameservers => nameservers )) else raise "Invalid nameserver type: #{nameservers.inspect}" end end