Sha256: 1e47157163bc21551b7903eb55ca3455a86d706bf4815946971988b854884678

Contents?: true

Size: 647 Bytes

Versions: 3

Compression:

Stored size: 647 Bytes

Contents

require 'yaml'

module  Cfnlego
  class Resource
    attr_reader :type, :name

    def initialize(type, name)
      @type = type
      @name = name 
    end

    def attributes
      definition["#{@type}"]["Attributes"]
    end

    def properties
      definition["#{@type}"]['Properties']
    end

    private

    # example AutoScaling::AutoScalingGroup
    def type2file
      @file ||= "#{File.realpath(File.dirname(__FILE__))}/resources/#{@type.gsub(/::/, "/")}.yaml"
    end

    def definition
      @definition ||= YAML.load_file(type2file)
    rescue
      $stderr.puts "unknown #{@type}, no matching definition found"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cfnlego-0.2.3 lib/cfnlego/resource.rb
cfnlego-0.2.2 lib/cfnlego/resource.rb
cfnlego-0.2.0 lib/cfnlego/resource.rb