Class: Unbind::Zone

Inherits:
Object
  • Object
show all
Defined in:
lib/unbind/zone.rb

Constant Summary collapse

TTL =
600

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, config) ⇒ Zone

Returns a new instance of Zone.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/unbind/zone.rb', line 7

def initialize name, config
  raise "zone should have a valid name (given: #{name})" unless name =~ /\A[\w\-\.]+\z/

  @name = name

  raise 'zone config should include data' unless
    config.is_a?(Hash) && config.has_key?(:data) && config[:data].is_a?(Hash)

  @config = config
  @data = @config[:data]

  # raise 'zone data should include name and mail servers and at least one A record' unless
  #   [:ns, :mx, :a].all? { |k| @data.has_key?(k) && !@data[k].empty? }

  sanitize_ttl
  sanitize_version
  assign_optional_data
end

Instance Attribute Details

#aliasesObject (readonly)

Returns the value of attribute aliases.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def aliases
  @aliases
end

#masterObject (readonly)

Returns the value of attribute master.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def master
  @master
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def name
  @name
end

#slavesObject (readonly)

Returns the value of attribute slaves.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def slaves
  @slaves
end

#ttlObject (readonly)

Returns the value of attribute ttl.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def ttl
  @ttl
end

#versionObject (readonly)

Returns the value of attribute version.



5
6
7
# File 'lib/unbind/zone.rb', line 5

def version
  @version
end

Instance Method Details

#generateObject



26
27
28
# File 'lib/unbind/zone.rb', line 26

def generate
  [header, essentials, resources, nil].join("\n")
end