Sha256: a64b87437585c5c6ec467eed3a8eb447fe66577c001edd8c36925f74ed73bf8d

Contents?: true

Size: 1002 Bytes

Versions: 15

Compression:

Stored size: 1002 Bytes

Contents

# frozen_string_literal: true

require_relative 'jsonable'

module CfnDsl
  # Handles Resource objects
  class ResourceDefinition < JSONable
    dsl_attr_setter :Type, :UpdateReplacePolicy, :DeletionPolicy, :Condition, :Metadata
    dsl_content_object :Property, :UpdatePolicy, :CreationPolicy

    def add_tag(name, value, propagate = nil)
      send(:Tag) do
        Key name
        Value value
        PropagateAtLaunch propagate unless propagate.nil?
      end
    end

    # DependsOn can be a single value or a list
    def DependsOn(value)
      case @DependsOn
      when nil
        @DependsOn = value
      when Array
        @DependsOn << value
      else
        @DependsOn = [@DependsOn, value]
      end
      if @DependsOn.is_a?(Array)
        @DependsOn.flatten!
        @DependsOn.uniq!
      end
      @DependsOn
    end

    def condition_refs
      [@Condition].flatten.compact.map(&:to_s)
    end

    def all_refs
      [@DependsOn].flatten.compact.map(&:to_s)
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
cfndsl-1.7.2 lib/cfndsl/resources.rb
cfndsl-1.6.0 lib/cfndsl/resources.rb
cfndsl-1.5.0 lib/cfndsl/resources.rb
cfndsl-1.4.0 lib/cfndsl/resources.rb
cfndsl-1.3.9 lib/cfndsl/resources.rb
cfndsl-1.3.8 lib/cfndsl/resources.rb
cfndsl-1.3.7 lib/cfndsl/resources.rb
cfndsl-1.3.6 lib/cfndsl/resources.rb
cfndsl-1.3.5 lib/cfndsl/resources.rb
cfndsl-1.3.4 lib/cfndsl/resources.rb
cfndsl-1.3.3 lib/cfndsl/resources.rb
cfndsl-1.3.2 lib/cfndsl/resources.rb
cfndsl-1.3.1 lib/cfndsl/resources.rb
cfndsl-1.3.0 lib/cfndsl/resources.rb
cfndsl-1.2.0 lib/cfndsl/resources.rb