Sha256: eab090d98cf11991050a5f74e5d3886a229375b54bb09b72806104fd9fd5d0b9

Contents?: true

Size: 681 Bytes

Versions: 104

Compression:

Stored size: 681 Bytes

Contents

module Terraspace::Compiler::Dsl::Syntax::Mod
  module Resource
    def resource(type, name, props={})
      resource = @structure[:resource] ||= {}
      resource_type = resource[type] ||= {}
      props = decorate(type, props)
      resource_type[name] = props
    end

    def decorate(type, props)
      klass = decorator_class(type)
      return props unless klass
      decorator = klass.new(type, props)
      decorator.call
    end

    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
  end
end

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
terraspace-2.2.17 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.16 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.15 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.14 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.13 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.12 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.11 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.10 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.9 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.8 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.7 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.6 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.5 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.4 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.3 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.2 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.1 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.2.0 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.1.7 lib/terraspace/compiler/dsl/syntax/mod/resource.rb
terraspace-2.1.6 lib/terraspace/compiler/dsl/syntax/mod/resource.rb