class Terraspace::Compiler::Expander

Attributes

expander[R]

Public Class Methods

autodetect(mod, opts={}) click to toggle source
# File lib/terraspace/compiler/expander.rb, line 22
def autodetect(mod, opts={})
  backend = opts[:backend]
  unless backend
    plugin = find_plugin
    backend = plugin[:backend]
  end
  new(mod, backend)
end
find_plugin() click to toggle source
# File lib/terraspace/compiler/expander.rb, line 32
def find_plugin
  plugins = Terraspace::Plugin.meta
  if plugins.size == 1
    plugins.first[1]
  else
    precedence = %w[aws azurerm google]
    plugin = precedence.find do |provider|
      plugins[provider]
    end
    plugins[plugin]
  end
end
new(mod, name) click to toggle source
# File lib/terraspace/compiler/expander.rb, line 6
def initialize(mod, name)
  @mod, @name = mod, name
  @expander = expander_class.new(@mod)
end

Public Instance Methods

expander_class() click to toggle source
# File lib/terraspace/compiler/expander.rb, line 11
def expander_class
  # IE: TerraspacePluginAws::Interfaces::Expander
  klass_name = Terraspace::Plugin.klass("Expander", backend: @name)
  klass_name.constantize if klass_name
rescue NameError
  Terraspace::Plugin::Expander::Generic
end