class DrawCloud::Configuration

Attributes

description[RW]

Public Class Methods

draw(&block) click to toggle source
# File lib/draw_cloud/configuration.rb, line 22
def self.draw(&block)
  c = Configuration.new
  c.instance_exec(c, &block)
  puts JSON.pretty_generate(c.to_cf)
end
new(options={}, &block) click to toggle source
Calls superclass method DrawCloud::Base::new
# File lib/draw_cloud/configuration.rb, line 28
def initialize(options={}, &block)
  super(options, &block)
end

Public Instance Methods

cf_add_mapping(name, map) click to toggle source
# File lib/draw_cloud/configuration.rb, line 48
def cf_add_mapping(name, map)
  mappings[name] = map
end
cf_add_output(name, out) click to toggle source
# File lib/draw_cloud/configuration.rb, line 57
def cf_add_output(name, out)
  outputs[name] = out
end
cf_add_parameter(name, param) click to toggle source
# File lib/draw_cloud/configuration.rb, line 51
def cf_add_parameter(name, param)
  parameters[name] = param
end
cf_add_resource(name, res) click to toggle source
# File lib/draw_cloud/configuration.rb, line 54
def cf_add_resource(name, res)
  resources[name] = res
end
to_cf() click to toggle source
# File lib/draw_cloud/configuration.rb, line 32
def to_cf
  h = {"AWSTemplateFormatVersion" => "2010-09-09"}
  h["Description"] = description if description

  c = Configuration.new
  self.load_into_config(c)

  { "Mappings" => c.mappings,
    "Parameters" => c.parameters,
    "Resources" => c.resources,
    "Outputs" => c.outputs }.each do |(key, values)|
    h[key] = Hash[*values.collect {|k,v| [k, v.to_h]}.flatten] unless values.empty?
  end
  h
end