Sha256: 833e240fa7c2930fd799b4e6a630dab5dd6a68e8a25c3ff384e67b857bb7329c

Contents?: true

Size: 900 Bytes

Versions: 6

Compression:

Stored size: 900 Bytes

Contents

# frozen_string_literal: true

require 'cfndsl/jsonable'
require 'cfndsl/properties'
require 'cfndsl/update_policy'

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

    def addTag(name, value, propagate = nil)
      add_tag(name, value, propagate)
    end

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

    def all_refs
      refs = []
      if @DependsOn
        if @DependsOn.respond_to?(:each)
          @DependsOn.each do |dep|
            refs.push dep
          end
        end

        refs.push @DependsOn if @DependsOn.instance_of?(String)
      end

      refs
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cfndsl-0.17.5 lib/cfndsl/resources.rb
cfndsl-0.17.4 lib/cfndsl/resources.rb
cfndsl-0.17.3 lib/cfndsl/resources.rb
cfndsl-0.17.2 lib/cfndsl/resources.rb
cfndsl-0.17.1 lib/cfndsl/resources.rb
cfndsl-0.17.0 lib/cfndsl/resources.rb