class Roadworker::DSL
Attributes
result[R]
Public Class Methods
convert(hosted_zones)
click to toggle source
# File lib/roadworker/dsl.rb, line 12 def convert(hosted_zones) Converter.convert(hosted_zones) end
define(source, path, lineno = 1)
click to toggle source
# File lib/roadworker/dsl.rb, line 6 def define(source, path, lineno = 1) self.new(path) do eval(source, binding, path, lineno) end end
new(path, &block)
click to toggle source
# File lib/roadworker/dsl.rb, line 29 def initialize(path, &block) @path = path @result = OpenStruct.new({:hosted_zones => []}) @context = Hashie::Mash.new( :path => path, :templates => {} ) instance_eval(&block) end
normalize_dns_name(name)
click to toggle source
# File lib/roadworker/dsl.rb, line 20 def normalize_dns_name(name) # Normalize name. AWS always returns name with trailing dot, and stores name always lowercase. # https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html "#{name.downcase}.".sub(/\.+\z/, '.') end
test(dsl, options)
click to toggle source
# File lib/roadworker/dsl.rb, line 16 def test(dsl, options) Tester.test(dsl, options) end
Public Instance Methods
template(name, &block)
click to toggle source
# File lib/roadworker/dsl.rb, line 41 def template(name, &block) @context.templates[name.to_s] = block end
Private Instance Methods
hosted_zone(name, id = nil, &block)
click to toggle source
# File lib/roadworker/dsl.rb, line 59 def hosted_zone(name, id = nil, &block) @result.hosted_zones << Hostedzone.new(@context, name, id, [], &block).result end
require(file)
click to toggle source
# File lib/roadworker/dsl.rb, line 47 def require(file) routefile = (file =~ %r|\A/|) ? file : File.expand_path(File.join(File.dirname(@path), file)) if File.exist?(routefile) instance_eval(File.read(routefile), routefile) elsif File.exist?(routefile + '.rb') instance_eval(File.read(routefile + '.rb'), routefile + '.rb') else Kernel.require(file) end end