Class: Oceanarium::Domain

Inherits:
Object
  • Object
show all
Defined in:
lib/oceanarium/resources/domain.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(option, api_key, config_id) ⇒ Domain

Returns a new instance of Domain.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/oceanarium/resources/domain.rb', line 8

def initialize(option, api_key, config_id)
  if api_key.nil? || config_id.nil?
    raise 'No API key/client ID!'
  else
    if option.is_a?(Hash)
      @object = option
    else
      @object = Oceanarium::Domain.find(option)
    end
    if @object.nil?
      self.id = nil
    else
      self.id = @object['id']
      self.name = @object['name']
      self.ttl = @object['ttl']
      self.live_zone_file = @object['live_zone_file']
    end
  end
end

Instance Attribute Details

#idObject

Returns the value of attribute id.



6
7
8
# File 'lib/oceanarium/resources/domain.rb', line 6

def id
  @id
end

#live_zone_fileObject

Returns the value of attribute live_zone_file.



6
7
8
# File 'lib/oceanarium/resources/domain.rb', line 6

def live_zone_file
  @live_zone_file
end

#nameObject

Returns the value of attribute name.



6
7
8
# File 'lib/oceanarium/resources/domain.rb', line 6

def name
  @name
end

#ttlObject

Returns the value of attribute ttl.



6
7
8
# File 'lib/oceanarium/resources/domain.rb', line 6

def ttl
  @ttl
end

Class Method Details

.allObject

Core API



58
59
60
61
62
# File 'lib/oceanarium/resources/domain.rb', line 58

def self.all
  @request = Oceanarium::Request.new
  @get = @request.get('/domains/')
  @get.parsed_response['domains']
end

.create(name, ip_addr) ⇒ Object



84
85
86
87
88
89
90
91
92
# File 'lib/oceanarium/resources/domain.rb', line 84

def self.create(name, ip_addr)
  @request = Oceanarium::Request.new
  @get = @request.get("/domains/new?name=#{name}&ip_address=#{ip_addr}")
  if @get.parsed_response['status'] == 'OK'
    @get.parsed_response['domain']['id']
  else
    @get.parsed_response['status']
  end
end

.destroy(id) ⇒ Object



94
95
96
97
98
# File 'lib/oceanarium/resources/domain.rb', line 94

def self.destroy(id)
  @request = Oceanarium::Request.new
  @get = @request.get("/domains/#{id}/destroy/")
  @get.parsed_response['status']
end

.find(id) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/oceanarium/resources/domain.rb', line 64

def self.find(id)
  @request = Oceanarium::Request.new
  @get = @request.get("/domains/#{id}")
  if @get.parsed_response['status'] == 'OK'
    @get.parsed_response['domain']
  else
    @get.parsed_response['status']
  end
end

.find_by_name(string) ⇒ Object



79
80
81
82
# File 'lib/oceanarium/resources/domain.rb', line 79

def self.find_by_name(string)
  # Returns domain which name equals string.
  self.all.select { |i| i['name'] == string }
end

.record(id = nil) ⇒ Object



28
29
30
# File 'lib/oceanarium/resources/domain.rb', line 28

def self.record(id = nil)
  Oceanarium::Record.new(id, Oceanarium::Config.api_key, Oceanarium::Config.client_id, self.id)
end

.recordsObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/oceanarium/resources/domain.rb', line 32

def self.records
  unless Oceanarium::Config.api_key.nil? || Oceanarium::Config.client_id.nil?
    @records = Array.new()
    Oceanarium::Record.all(self.id).each do |record|
      @object = Oceanarium::Record.new(record, Oceanarium::Config.api_key, Oceanarium::Config.client_id)
      @records << @object
    end
    @records
  end
end

.search_by_name(string) ⇒ Object



74
75
76
77
# File 'lib/oceanarium/resources/domain.rb', line 74

def self.search_by_name(string)
  # Returns Array of domains which name matching string.
  self.all.select { |i| i['name'].include? string }
end

Instance Method Details

#destroyObject



52
53
54
# File 'lib/oceanarium/resources/domain.rb', line 52

def destroy
  Oceanarium::Domain.destroy(self.id)
end

#new(name, ip_addr) ⇒ Object

User API



45
46
47
48
49
50
# File 'lib/oceanarium/resources/domain.rb', line 45

def new(name, ip_addr)
  @new_id = Oceanarium::Domain.create(name, ip_addr)
  unless @new_id == 'ERROR'
    Oceanarium::domain(@new_id)
  end
end