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