Sha256: ed404a36bb2eb5791d9a08f7213432eb8db34d05279023d446edf4b2ab6b64c0

Contents?: true

Size: 849 Bytes

Versions: 2

Compression:

Stored size: 849 Bytes

Contents

require 'json'

module Stackster
  class StackCreater

    def initialize(args)
      @cf = AWS::CloudFormation.new args[:environment]
      @entry = args[:entry]
      @name = args[:name]
      @template = read_template_from_file args[:template]
    end

    def read_template_from_file(template_file)
      file = File.open template_file
      file.read
    end

    def read_parameters_from_template
      t = JSON.parse(@template)
      t['Paramaters'].nil? ? t['Parameters'].keys : []
    end

    def read_parameters_from_entry
      h = {}
      read_parameters_from_template.each do |p|
        h[p] = @entry.attributes[p] if @entry.attributes[p]
      end
      h
    end

    def create
      @cf.create :name => @name,
                 :parameters => read_parameters_from_entry,
                 :template => @template
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stackster-0.0.2 lib/stackster/stack/stack_creater.rb
stackster-0.0.1 lib/stackster/stack/stack_creater.rb