class Dnsdeploy::Local

Public Class Methods

new(local_records_json) click to toggle source
# File lib/dnsdeploy/local.rb, line 5
def initialize(local_records_json)
  @local_records_json = local_records_json
end

Public Instance Methods

all_records() click to toggle source
# File lib/dnsdeploy/local.rb, line 9
def all_records
  @all_records ||= json.map do |record_set|
    domain = dnsimple_domain(record_set['zone'])
    create_records(domain, record_set['records'])
  end.flatten
end
create_records(domain, json_records) click to toggle source
# File lib/dnsdeploy/local.rb, line 27
def create_records(domain, json_records)
  json_records.map do |record|
    Record.new(domain: domain, name: record['name'], record_type: record['type'],
      content: record['value'], ttl: record['ttl'], prio: record['prio'])
  end
end
dnsimple_domain(zone) click to toggle source
# File lib/dnsdeploy/local.rb, line 38
def dnsimple_domain(zone)
  @dnsimple_domains ||= {}
  @dnsimple_domains[zone] ||= DNSimple::Domain.all.select { |d| d.name == zone }.first
end
domains() click to toggle source
# File lib/dnsdeploy/local.rb, line 20
def domains
  @domains ||= json.inject({}) do |memo, record_set|
    memo[record_set['zone']] = dnsimple_domain(record_set['zone'])
    memo
  end
end
json() click to toggle source
# File lib/dnsdeploy/local.rb, line 34
def json
  @json ||= JSON.load(@local_records_json)
end
records(domain) click to toggle source
# File lib/dnsdeploy/local.rb, line 16
def records(domain)
  all_records.select { |r| r.domain.name == domain.name }
end