Class: Dyndnsd::Generator::Bind

Inherits:
Object
  • Object
show all
Defined in:
lib/dyndnsd/generator/bind.rb

Instance Method Summary collapse

Constructor Details

#initialize(domain, config) ⇒ Bind

Returns a new instance of Bind.



5
6
7
8
9
10
11
# File 'lib/dyndnsd/generator/bind.rb', line 5

def initialize(domain, config)
  @domain = domain
  @ttl = config['ttl']
  @dns = config['dns']
  @email_addr = config['email_addr']
  @additional_zone_content = config['additional_zone_content']
end

Instance Method Details

#generate(zone) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/dyndnsd/generator/bind.rb', line 13

def generate(zone)
  out = []
  out << "$TTL #{@ttl}"
  out << "$ORIGIN #{@domain}."
  out << ""
  out << "@ IN SOA #{@dns} #{@email_addr} ( #{zone['serial']} 3h 5m 1w 1h )"
  out << "@ IN NS #{@dns}"
  out << ""
  zone['hosts'].each do |hostname,ip|
    name = hostname.chomp('.' + @domain)
    out << "#{name} IN A #{ip}"
  end
  out << ""
  out << @additional_zone_content
  out << ""
  out.join("\n")
end