Sha256: 7b17f214a0789d88ef48fb4fcbfe10513d18c768df8a4615ec5fa5bd79aa8872

Contents?: true

Size: 810 Bytes

Versions: 8

Compression:

Stored size: 810 Bytes

Contents

class Ufo::Stack
  class Builder
    class_attribute :context

    def initialize(context)
      @context = context
      # This builder class is really used as a singleton.
      # To avoid having to pass context to all the builder classes.
      self.class.context = @context
      @template = {
        Description: "Ufo ECS stack #{context.stack_name}",
      }
    end

    def build
      @template[:Parameters] = Parameters.new.build
      @template[:Conditions] = Conditions.new.build
      @template[:Resources] = Resources.new.build
      @template[:Outputs] = Outputs.new.build
      @template.deep_stringify_keys!
      @template = Ufo::Utils::Squeezer.new(@template).squeeze
      @template = CustomProperties.new(@template, @context.stack_name).apply
      YAML.dump(@template)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ufo-5.0.7 lib/ufo/stack/builder.rb
ufo-5.0.6 lib/ufo/stack/builder.rb
ufo-5.0.5 lib/ufo/stack/builder.rb
ufo-5.0.4 lib/ufo/stack/builder.rb
ufo-5.0.3 lib/ufo/stack/builder.rb
ufo-5.0.2 lib/ufo/stack/builder.rb
ufo-5.0.1 lib/ufo/stack/builder.rb
ufo-5.0.0 lib/ufo/stack/builder.rb