module Convection::DSL::Template::Resource

Container for DSL interfaces

Public Class Methods

attach_resource(name, klass) click to toggle source

Wrap private define_method

# File lib/convection/model/template.rb, line 19
def attach_resource(name, klass)
  resource_dsl_methods[name.to_s] = klass
  define_method(name) do |rname, &block|
    resource = klass.new(rname, self)
    resource.instance_exec(&block) if block

    resources[rname] = resource
  end
end
attach_resource_collection(name, klass) click to toggle source
# File lib/convection/model/template.rb, line 29
def attach_resource_collection(name, klass)
  resource_collection_dsl_methods[name.to_s] = klass
  define_method(name) do |rname, &block|
    resource_collections[rname] = klass.new(rname, self, &block)
  end
end
resource_collection_dsl_methods() click to toggle source
# File lib/convection/model/template.rb, line 40
def resource_collection_dsl_methods
  @resource_collection_dsl_methods ||= {}
end
resource_dsl_methods() click to toggle source
# File lib/convection/model/template.rb, line 36
def resource_dsl_methods
  @resource_dsl_methods ||= {}
end

Public Instance Methods

_terraform_module_dir_to_flag(dir) click to toggle source
# File lib/convection/model/template.rb, line 45
def _terraform_module_dir_to_flag(dir)
  return 'root' if dir.empty?

  parts = dir.split('/')
  parts[0] = 'module' if parts[0] == 'modules'
  parts.join('.')
end
_terraform_module_flag_to_dir(flag) click to toggle source
# File lib/convection/model/template.rb, line 53
def _terraform_module_flag_to_dir(flag)
  return '' if flag == 'root'

  parts = flag.split('.')
  parts[0] = 'modules'
  parts.join('/')
end