Class: GitHubPages::HealthCheck::Resolver
- Inherits:
-
Object
- Object
- GitHubPages::HealthCheck::Resolver
- Defined in:
- lib/github-pages-health-check/resolver.rb
Constant Summary collapse
- DEFAULT_RESOLVER_OPTIONS =
{ :retry_times => 2, :query_timeout => 5, :dnssec => false }.freeze
- PREFERS_AUTHORITATIVE_ANSWER =
[ Dnsruby::Types::A, Dnsruby::Types::CAA, Dnsruby::Types::MX ].freeze
Instance Attribute Summary collapse
-
#domain ⇒ Object
readonly
Returns the value of attribute domain.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(domain) ⇒ Resolver
constructor
A new instance of Resolver.
- #query(type) ⇒ Object
Constructor Details
#initialize(domain) ⇒ Resolver
Returns a new instance of Resolver.
26 27 28 |
# File 'lib/github-pages-health-check/resolver.rb', line 26 def initialize(domain) @domain = domain end |
Instance Attribute Details
#domain ⇒ Object (readonly)
Returns the value of attribute domain.
24 25 26 |
# File 'lib/github-pages-health-check/resolver.rb', line 24 def domain @domain end |
Class Method Details
.default_resolver ⇒ Object
19 20 21 |
# File 'lib/github-pages-health-check/resolver.rb', line 19 def default_resolver @default_resolver ||= Dnsruby::Resolver.new(DEFAULT_RESOLVER_OPTIONS) end |
Instance Method Details
#query(type) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/github-pages-health-check/resolver.rb', line 30 def query(type) if PREFERS_AUTHORITATIVE_ANSWER.include?(type) answer = .query(domain, type).answer return answer unless answer.empty? end self.class.default_resolver.query(domain, type).answer rescue Dnsruby::ResolvTimeout, Dnsruby::ResolvError self.class.default_resolver.query(domain, type).answer end |