class GitHubPages::HealthCheck::Resolver
Constants
- DEFAULT_RESOLVER_OPTIONS
- PUBLIC_NAMESERVERS
Attributes
Public Class Methods
Source
# File lib/github-pages-health-check/resolver.rb, line 18 def default_resolver @default_resolver ||= Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS) end
Source
# File lib/github-pages-health-check/resolver.rb, line 29 def initialize(domain, nameservers: :default) @domain = domain @nameservers = nameservers end
Create a new resolver.
domain - the domain we’re getting answers for nameserver - (optional) a case
Public Instance Methods
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
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( :nameserver => authoritative_nameservers )) when :public Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS.merge( :nameserver => PUBLIC_NAMESERVERS )) when Array Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS.merge( :nameserver => nameservers )) else raise "Invalid nameserver type: #{nameservers.inspect}" end end