Class: Dynadot::Api
Instance Method Summary collapse
- #availabile?(domain) ⇒ Boolean
- #execute(command, parameters = {}) ⇒ Object
-
#initialize(key = nil) ⇒ Api
constructor
A new instance of Api.
- #search(*domains) ⇒ Object
Constructor Details
#initialize(key = nil) ⇒ Api
Returns a new instance of Api.
8 9 10 11 |
# File 'lib/dynadot/api.rb', line 8 def initialize(key = nil) raise ArgumentError, 'An API key is required' if key.to_s.empty? self.class.default_params key: key.to_s end |
Instance Method Details
#availabile?(domain) ⇒ Boolean
35 36 37 |
# File 'lib/dynadot/api.rb', line 35 def availabile?(domain) search(domain)[domain] end |
#execute(command, parameters = {}) ⇒ Object
13 14 15 16 |
# File 'lib/dynadot/api.rb', line 13 def execute(command, parameters = {}) response = self.class.get '', query: { command: command.to_s }.merge(parameters) parse(response) end |
#search(*domains) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/dynadot/api.rb', line 18 def search(*domains) parameters = Hash[domains.map.with_index { |domain, index| ["domain#{index}" , domain] }] results = execute(:search, parameters).map do |result| domain, availability = result[1], result[3] case availability when 'yes' then [domain, true] when 'no' then [domain, false] when 'offline' then [domain, nil] when 'system_busy' then [domain, nil] when 'error' then raise "Error processing #{domain}: #{result[4]}" end end return Hash[results] end |