class DoHClient::Client::Base

Public Class Methods

resolve(name, options) click to toggle source
# File lib/doh_client/client/base.rb, line 15
def self.resolve(name, options)
  new.resolve(name, options)
end

Public Instance Methods

build_query() click to toggle source
# File lib/doh_client/client/base.rb, line 23
def build_query
  raise NotImplementedError, "You must implement #{self.class}##{__method__}"
end
endpoint() click to toggle source
# File lib/doh_client/client/base.rb, line 19
def endpoint
  raise NotImplementedError, "You must implement #{self.class}##{__method__}"
end
resolve(name, options) click to toggle source
# File lib/doh_client/client/base.rb, line 9
def resolve(name, options)
  query = build_query(name, options)
  validate(query)
  Request.get(endpoint, query)
end
validate(query) click to toggle source
# File lib/doh_client/client/base.rb, line 27
def validate(query)
  raise ArgumentError, "name is a required parameter" if query[:name].nil?
  raise ArgumentError, "type is a required parameter" if query[:type].nil?
  raise ArgumentError, "cd must be a boolean value" if query[:cd] && !boolean?(query[:cd])
end

Private Instance Methods

boolean?(param) click to toggle source
# File lib/doh_client/client/base.rb, line 35
def boolean?(param)
  [true, false].include? param
end