class CloudFormer::Functions::FindInMap

Public Class Methods

new(map_name, top_level_key, second_level_key) click to toggle source
# File lib/cloud_former/functions/find_in_map.rb, line 5
def initialize(map_name, top_level_key, second_level_key)
  @map_name = map_name
  @top_level_key = top_level_key
  @second_level_key = second_level_key
end

Public Instance Methods

dump_json() click to toggle source
# File lib/cloud_former/functions/find_in_map.rb, line 11
def dump_json
  {
    'Fn::FindInMap' => [
      @map_name,
      transform_key(@top_level_key),
      transform_key(@second_level_key),
    ],
  }
end

Private Instance Methods

transform_key(key) click to toggle source
# File lib/cloud_former/functions/find_in_map.rb, line 23
def transform_key(key)
  if key.is_a?(Parameter) || key.is_a?(PseudoParameter)
    { 'Ref' => key.get_name }
  elsif key.is_a?(Function)
    key.dump_json
  elsif key.is_a?(Resource)
    { 'Ref' => key.get_name }
  else
    key
  end
end