lib/clouddns/dsl.rb in clouddns-0.0.2 vs lib/clouddns/dsl.rb in clouddns-0.0.3
- old
+ new
@@ -1,13 +1,10 @@
module Clouddns
class DSL
attr_reader :zones
attr_reader :fog_options
- # This need not be too strict. Only exists to help catch typos.
- DNS_REGEX = /\A.*\..*\.\z/
-
def initialize
@zones = []
@zone = nil
@defaults = {}
@fog_options = {}
@@ -30,11 +27,12 @@
add_record type, *args
end
end
def add_record type, name, value, options={}
- name = domainname(name)
+ name = Utils::parse_domain(name)
+ options = @defaults.merge(options)
value = "\"#{value}\"" if type == 'TXT'
raise "records must be added inside a zone" unless @zone
raise "record's dns name must end with the current zone" unless name.end_with? @zone.name
@@ -43,11 +41,11 @@
end
def zone name
raise "zones cannot be nested" if @zone
- @zone = Zone.new(domainname(name))
+ @zone = Zone.new(Utils::parse_domain(name))
@zones << @zone
yield
@zone = nil
end
@@ -63,18 +61,9 @@
end
end
def provider name, options={}
@fog_options = options.merge({:provider => name})
- end
-
- private
- def domainname name
- if name.end_with? '.'
- name
- else
- "#{name}."
- end
end
end
end