module Cfer::Groups::ResourceGroup

Attributes

stack[R]

Public Class Methods

new(name, type, stack, **options, &block) click to toggle source
Calls superclass method
# File lib/cfer/groups/resource_group.rb, line 6
def initialize(name, type, stack, **options, &block)
  @group_name = name
  @resource_type = type
  options = { DependsOn: [] }.merge(options)

  super name, "AWS::CloudFormation::WaitConditionHandle", stack, options do
    self.instance_exec &block if block
    self[:Metadata] = {
      Type: type,
      Properties: self[:Properties]
    }
  end

  Docile.dsl_eval self, self[:Properties] do
    self.instance_exec self[:Properties], &self.class.block if self.class.block
  end
  self[:Properties] = {}
end

Public Instance Methods

get_att(obj, att) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 60
def get_att(obj, att)
  Cfer::Core::Functions::Fn::get_att name_of(obj), att
end
name_of(name) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 48
def name_of(name)
  "#{@group_name}#{name}"
end
output(name, value, options = {}) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 44
def output(name, value, options = {})
  stack.output name_of(name), value, options
end
parameter(name, options = {}) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 56
def parameter(name, options = {})
  stack.parameter name_of(name), options
end
ref(obj) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 52
def ref(obj)
  Cfer::Core::Functions::Fn::ref name_of(obj)
end
resource(name, type, options = {}, &block) click to toggle source
# File lib/cfer/groups/resource_group.rb, line 25
def resource(name, type, options = {}, &block)
  rc_name = name_of(name)
  self[:DependsOn] << rc_name

  group = self
  rc = @stack.resource rc_name, type, options do
    self.cfer_resource_group = group
    self.instance_eval &block
  end

  if self[:Tags]
    self[:Tags].each do |t|
      rc.tag t["Key"], t["Value"]
    end
  end

  rc
end