Sha256: 6c39c745ac9043c893972d0b2f73e1c1beae9ac61154d4b287bf8bab29b62bbb

Contents?: true

Size: 1.25 KB

Versions: 25

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

require_relative 'jsonable'

module CfnDsl
  # Handles Rule objects
  class RuleDefinition < JSONable
    dsl_attr_setter :RuleCondition, :Assertions

    def initialize
      @Assertions = []
    end

    def Assert(desc, struct)
      @Assertions.push('Assert' => struct, 'AssertDescription' => desc)
    end

    def FnContains(list_of_strings, string)
      Fn.new('Contains', [list_of_strings, string])
    end

    def FnEachMemberEquals(list_of_strings, string)
      Fn.new('EachMemberEquals', [list_of_strings, string])
    end

    def FnEachMemberIn(strings_to_check, strings_to_match)
      Fn.new('EachMemberIn', [strings_to_check, strings_to_match])
    end

    def FnRefAll(parameter_type)
      Fn.new('RefAll', parameter_type)
    end

    def FnValueOf(parameter_logical_id, attribute)
      raise 'Cannot use functions within FnValueOf' unless parameter_logical_id.is_a?(String) && attribute.is_a?(String)

      Fn.new('ValueOf', [parameter_logical_id, attribute])
    end

    def FnValueOfAll(parameter_logical_id, attribute)
      raise 'Cannot use functions within FnValueOfAll' unless parameter_logical_id.is_a?(String) && attribute.is_a?(String)

      Fn.new('ValueOfAll', [parameter_logical_id, attribute])
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
cfndsl-1.7.2 lib/cfndsl/rules.rb
cfndsl-1.6.0 lib/cfndsl/rules.rb
cfndsl-1.5.0 lib/cfndsl/rules.rb
cfndsl-1.4.0 lib/cfndsl/rules.rb
cfndsl-1.3.9 lib/cfndsl/rules.rb
cfndsl-1.3.8 lib/cfndsl/rules.rb
cfndsl-1.3.7 lib/cfndsl/rules.rb
cfndsl-1.3.6 lib/cfndsl/rules.rb
cfndsl-1.3.5 lib/cfndsl/rules.rb
cfndsl-1.3.4 lib/cfndsl/rules.rb
cfndsl-1.3.3 lib/cfndsl/rules.rb
cfndsl-1.3.2 lib/cfndsl/rules.rb
cfndsl-1.3.1 lib/cfndsl/rules.rb
cfndsl-1.3.0 lib/cfndsl/rules.rb
cfndsl-1.2.0 lib/cfndsl/rules.rb
cfndsl-1.1.1 lib/cfndsl/rules.rb
cfndsl-1.1.0 lib/cfndsl/rules.rb
cfndsl-1.0.6 lib/cfndsl/rules.rb
cfndsl-1.0.5 lib/cfndsl/rules.rb
cfndsl-1.0.4 lib/cfndsl/rules.rb