Class: CloudFormer::Functions::If

Inherits:
CloudFormer::Function show all
Defined in:
lib/cloud_former/functions/if.rb

Instance Method Summary collapse

Constructor Details

#initialize(condition, true_value, false_value) ⇒ If

Returns a new instance of If.



5
6
7
8
9
# File 'lib/cloud_former/functions/if.rb', line 5

def initialize(condition, true_value, false_value)
  @condition = condition
  @true_value = true_value
  @false_value = false_value
end

Instance Method Details

#dump_jsonObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/cloud_former/functions/if.rb', line 11

def dump_json
  if @true_value.respond_to?(:get_name)
    tv = { 'Ref' => @value1.get_name }
  elsif @true_value.is_a?(Function)
    tv = @true_value.dump_json
  elsif @true_value.respond_to?(:to_s)
    tv = @true_value.to_s
  end

  if @false_value.respond_to?(:get_name)
    fv = { 'Ref' => @false_value.get_name }
  elsif @false_value.is_a?(Function)
    fv = @false_value.dump_json
  elsif @false_value.respond_to?(:to_s)
    fv = @false_value.to_s
  end

  { 'Fn::If' => [@condition.get_name, tv, fv] }
end