Sha256: 801ce9eabf8ce9bbd94ee728f7e1c15ad65e34e3b19cc9f7283a95807da940b9
Contents?: true
Size: 1.02 KB
Versions: 11
Compression:
Stored size: 1.02 KB
Contents
class Jets::Stack class Builder extend Memoist include Jets::Util::Camelize def initialize(stack) @stack = stack @template = {} # will build this structure up end def template build_section(:parameters) build_section(:resources) build_section(:outputs) camelize(@template).deep_stringify_keys end memoize :template def build_section(section) elements = build_elements(section) return unless elements if section == :parameters elements[:GemLayer] = {Type: "String"} if Jets.gem_layer? end @template[section] = elements end def build_elements(section) # s is a "section element". Examples: # # Jets::Stack::Parameter # Jets::Stack::Resource # Jets::Stack::Output # section_elements = @stack.send(section) return unless section_elements section_elements.inject({}) do |template_section, s| template_section.merge(s.template) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems