Sha256: d055de9277508a53efde6e9ae8cdb4b9fead03f15cb6fee0d5009cfc154ce2ed

Contents?: true

Size: 918 Bytes

Versions: 6

Compression:

Stored size: 918 Bytes

Contents

# frozen_string_literal: true

require 'yaml'
require 'erb'
require 'cfnlego/cloudformation'
require 'cfnlego/resource'
require 'net/http'
require 'uri'

# Cfnlego
module Cfnlego
  def self.Resources
    content = fetch_resource_content
    supported_resources = JSON.parse(content)
    resources = []
    supported_resources['ResourceTypes'].each_key do |resource|
      resources << resource
    end
    resources
  end

  def self.fetch_resource_content
    File.read(CfnDsl.specification_file)
  end

  def self.run(options)
    # Constructure Resources
    resources = []
    options[:resources].each do |r|
      /(.*),(.*)/.match(r) do |m|
        type = m[1]
        name = m[2]
        resources << Cfnlego::Resource.new(type, name)
      end
    end

    begin
      return Cfnlego::CloudFormation.new(resources).render
    rescue RuntimeError => e
      warn "Error: #{e.message}"
    end
    nil
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cfndsl-0.17.5 lib/cfnlego.rb
cfndsl-0.17.4 lib/cfnlego.rb
cfndsl-0.17.3 lib/cfnlego.rb
cfndsl-0.17.2 lib/cfnlego.rb
cfndsl-0.17.1 lib/cfnlego.rb
cfndsl-0.17.0 lib/cfnlego.rb