Sha256: 646f0226dd61b01170c846af81f8267e7501ea422c7ccff107400ad5ece42d1c

Contents?: true

Size: 1.68 KB

Versions: 11

Compression:

Stored size: 1.68 KB

Contents

module Convection
  module DSL
    ##
    # Formatting helpers for Intrinsic Functions
    module IntrinsicFunctions
      def base64(content)
        {
          'Fn::Base64' => content
        }
      end

      def fn_and(*conditions)
        {
          'Fn::And' => conditions
        }
      end

      def fn_equals(value_1, value_2)
        {
          'Fn::Equals' => [value_1, value_2]
        }
      end

      def fn_if(condition, value_true, value_false)
        {
          'Fn::If' => [condition, value_true, value_false]
        }
      end

      def fn_import_value(value)
        {
          'Fn::ImportValue' => value
        }
      end

      def fn_not(condition)
        {
          'Fn::Not' => [condition]
        }
      end

      def fn_or(*conditions)
        {
          'Fn::Or' => conditions
        }
      end

      def fn_sub(str, *vars)
        if vars && !vars.empty?
          {
            'Fn::Sub' => [str, vars]
          }
        else
          {
            'Fn::Sub' => str
          }
        end
      end

      def find_in_map(map_name, key_1, key_2)
        {
          'Fn::FindInMap' => [map_name, key_1, key_2]
        }
      end

      def get_att(resource, attr_name)
        {
          'Fn::GetAtt' => [resource, attr_name]
        }
      end

      def get_azs(region)
        {
          'Fn::GetAZs' => region
        }
      end

      def join(delimiter, *values)
        {
          'Fn::Join' => [delimiter, values]
        }
      end

      def select(index, *objects)
        {
          'Fn::Select' => [index, objects]
        }
      end

      def fn_ref(resource)
        {
          'Ref' => resource
        }
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
convection-2.2.2 lib/convection/dsl/intrinsic_functions.rb
convection-2.2.1 lib/convection/dsl/intrinsic_functions.rb
convection-2.2.0 lib/convection/dsl/intrinsic_functions.rb
convection-2.1.2 lib/convection/dsl/intrinsic_functions.rb
convection-2.1.1 lib/convection/dsl/intrinsic_functions.rb
convection-2.1.0 lib/convection/dsl/intrinsic_functions.rb
convection-2.0.0 lib/convection/dsl/intrinsic_functions.rb
convection-1.1.7 lib/convection/dsl/intrinsic_functions.rb
convection-1.1.5 lib/convection/dsl/intrinsic_functions.rb
convection-1.1.4 lib/convection/dsl/intrinsic_functions.rb
convection-1.1.3 lib/convection/dsl/intrinsic_functions.rb