Sha256: e38a9b2e6b93adccb56291315a28dd796b5c459150e493d902f37f081313e8e8

Contents?: true

Size: 714 Bytes

Versions: 12

Compression:

Stored size: 714 Bytes

Contents

# frozen_string_literal: true

module Humidifier
  class Fn
    # The list of all internal functions provided by AWS from
    # http://docs.aws.amazon.com
    #   /AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html
    FUNCTIONS =
      Humidifier.underscore(
        %w[And Base64 Cidr Equals FindInMap GetAtt GetAZs If ImportValue Join
           Not Or Select Split Sub Transform]
      )

    attr_reader :name, :value

    def initialize(name, value)
      @name = "Fn::#{name}"
      @value = value
    end

    def to_cf
      { name => Serializer.dump(value) }
    end

    FUNCTIONS.each do |name, func|
      define_singleton_method(func) { |value| new(name, value) }
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
humidifier-4.2.0 lib/humidifier/fn.rb
humidifier-4.1.1 lib/humidifier/fn.rb
humidifier-4.0.2 lib/humidifier/fn.rb
humidifier-4.0.1 lib/humidifier/fn.rb
humidifier-4.0.0 lib/humidifier/fn.rb
humidifier-3.5.0 lib/humidifier/fn.rb
humidifier-3.4.0 lib/humidifier/fn.rb
humidifier-3.3.0 lib/humidifier/fn.rb
humidifier-3.2.0 lib/humidifier/fn.rb
humidifier-3.1.0 lib/humidifier/fn.rb
humidifier-3.0.1 lib/humidifier/fn.rb
humidifier-3.0.0 lib/humidifier/fn.rb