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