Module: Cfer::Groups::ResourceGroup

Defined in:
lib/cfer/groups/resource_group.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#stackObject (readonly)

Returns the value of attribute stack.



4
5
6
# File 'lib/cfer/groups/resource_group.rb', line 4

def stack
  @stack
end

Instance Method Details

#get_att(obj, att) ⇒ Object



60
61
62
# 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

#initialize(name, type, stack, **options, &block) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

#name_of(name) ⇒ Object



48
49
50
# File 'lib/cfer/groups/resource_group.rb', line 48

def name_of(name)
  "#{@group_name}#{name}"
end

#output(name, value, options = {}) ⇒ Object



44
45
46
# 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 = {}) ⇒ Object



56
57
58
# File 'lib/cfer/groups/resource_group.rb', line 56

def parameter(name, options = {})
  stack.parameter name_of(name), options
end

#ref(obj) ⇒ Object



52
53
54
# 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) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 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