Sha256: 32ef1bf2913786b93eb08c5897c4f735113435f2a7bf3ef0283d6b6b070fb09e

Contents?: true

Size: 1.28 KB

Versions: 139

Compression:

Stored size: 1.28 KB

Contents

# Does not do full expansion, mainly a container that holds the definition and
# standardizes it without camelizing it.
class Jets::Resource
  class Associated
    extend Memoist

    attr_reader :definition
    attr_accessor :multiple_resources
    def initialize(*definition)
      @definition = definition.flatten
      # Some associated resources require multiple resources for a single Lambda function. For
      # example `sqs_event` can create a `SQS::Queue` and `Lambda::EventSourceMapping`.  We set
      # a `multiple` flag so `add_logical_id_counter` can use it to avoid adding counter ids to
      # these type of resources. The `multiple` flag allows us to handle both:
      #
      #   1. Associated resources that contain multiple resources for a single Lambda function
      #   2. A single Lambda function with multiple events.  In this case, a counter is added
      #
      # Setting `multiple` to true means the counter id will not be added.
      @multiple_resources = false
    end

    def logical_id
      standardized.keys.first
    end

    def attributes
      standardized.values.first
    end

    def standardized
      standardizer = Standardizer.new(definition)
      standardizer.standarize(definition) # doesnt camelize keys yet
    end
    memoize :standardized
  end
end

Version data entries

139 entries across 139 versions & 3 rubygems

Version Path
jets-4.0.12 lib/jets/resource/associated.rb
jets-4.0.11 lib/jets/resource/associated.rb
jets-4.0.10 lib/jets/resource/associated.rb
jets-4.0.9 lib/jets/resource/associated.rb
jets-4.0.8 lib/jets/resource/associated.rb
jets-4.0.7 lib/jets/resource/associated.rb
jets-4.0.6 lib/jets/resource/associated.rb
jets-4.0.5 lib/jets/resource/associated.rb
jets-4.0.4 lib/jets/resource/associated.rb
jets-4.0.3 lib/jets/resource/associated.rb
jets-4.0.2 lib/jets/resource/associated.rb
jets-4.0.1 lib/jets/resource/associated.rb
jets-4.0.0 lib/jets/resource/associated.rb
jets-3.2.2 lib/jets/resource/associated.rb
jets-3.2.1 lib/jets/resource/associated.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/resource/associated.rb
jets-3.2.0 lib/jets/resource/associated.rb
jets-3.1.5 lib/jets/resource/associated.rb
jets-3.1.4 lib/jets/resource/associated.rb
jets-3.1.3 lib/jets/resource/associated.rb