Sha256: 4e74c9591a3762f70563f9fc6e01dde27fde57c6f93aa45bc3f1a2ed6a82fb38

Contents?: true

Size: 719 Bytes

Versions: 6

Compression:

Stored size: 719 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 AWS::AutoScaling::AutoScalingGroup
    def type2file
      @file ||= "#{File.realpath(File.dirname(__FILE__))}/resources/#{@type.gsub(/::/, File::SEPARATOR)}.yaml"
    end

    def definition
      if File::exists?(type2file)
        @definition ||= YAML.load_file(type2file)
      else
        raise RuntimeError, "unknown #{@type}, no matching definition found"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cfnlego-0.6.3 lib/cfnlego/resource.rb
cfnlego-0.6.2 lib/cfnlego/resource.rb
cfnlego-0.6.1 lib/cfnlego/resource.rb
cfnlego-0.6.0 lib/cfnlego/resource.rb
cfnlego-0.5.1 lib/cfnlego/resource.rb
cfnlego-0.5.0 lib/cfnlego/resource.rb