module Terraspace::Compiler::Dsl::Syntax::Mod::Resource

Public Instance Methods

decorate(type, props) click to toggle source
# File lib/terraspace/compiler/dsl/syntax/mod/resource.rb, line 10
def decorate(type, props)
  klass = decorator_class(type)
  return props unless klass
  decorator = klass.new(type, props)
  decorator.call
end
decorator_class(type) click to toggle source
# File lib/terraspace/compiler/dsl/syntax/mod/resource.rb, line 17
def decorator_class(type)
  # IE: TerraspacePluginAws::Interfaces::Decorator
  klass_name = Terraspace::Plugin.klass("Decorator", resource: type)
  klass_name.constantize if klass_name
rescue NameError
end
resource(type, name, props={}) click to toggle source
# File lib/terraspace/compiler/dsl/syntax/mod/resource.rb, line 3
def resource(type, name, props={})
  resource = @structure[:resource] ||= {}
  resource_type = resource[type] ||= {}
  props = decorate(type, props)
  resource_type[name] = props
end