module Aws::Cfn::Dsl::DSL

Public Class Methods

included(includer) click to toggle source
# File lib/aws/cfn/dsl/mixins/dsl.rb, line 45
def self.included(includer)

end

Public Instance Methods

add_brick(subdir,name) click to toggle source
# File lib/aws/cfn/dsl/mixins/dsl.rb, line 22
def add_brick(subdir,name)
  if @config[:directory]
    #file = rb_file(subdir, name).gsub(%r'^#{@config[:directory]}/','')
    #writeln "  file '#{file}'"
    s = subdir.downcase.gsub(%r's$','')
    writeln "  #{s} '#{name}'"
  end
end
detect_type(val) click to toggle source

Attempt to figure out what fragment of the template we have. This is imprecise and can’t detect Mappings and Outputs sections reliably, so it doesn’t attempt to.

# File lib/aws/cfn/dsl/mixins/dsl.rb, line 8
def detect_type(val)
  if val.is_a?(Hash) && val['AWSTemplateFormatVersion']
    :template
  elsif val.is_a?(Hash) && /^(String|Number)$/ =~ val['Type']
    :parameter
  elsif val.is_a?(Hash) && val['Type']
    :resource
  elsif val.is_a?(Hash) && val.values.all? { |v| detect_type(v) == :parameter }
    :parameters
  elsif val.is_a?(Hash) && val.values.all? { |v| detect_type(v) == :resource }
    :resources
  end
end
module_name(parts=-1) click to toggle source
# File lib/aws/cfn/dsl/mixins/dsl.rb, line 39
def module_name(parts=-1)
  name = self.class.to_s.split("::")
  name[0..parts-1].join('::')
end
rb_file(subdir, name) click to toggle source
# File lib/aws/cfn/dsl/mixins/dsl.rb, line 31
def rb_file(subdir, name)
  path = File.join(@config[:directory], subdir)
  unless File.directory? path
    Dir.mkdir path
  end
  file = File.join(path, "#{name}.rb")
end