class Terraspace::Compiler::Dsl::Tfvars

Public Instance Methods

add_instance_vars!(new_instance_vars) click to toggle source
# File lib/terraspace/compiler/dsl/tfvars.rb, line 19
def add_instance_vars!(new_instance_vars)
  # IE: new_instance_variables = [:@cidr_block, :@name]
  @structure.deep_stringify_keys!
  new_instance_vars.each do |var|
    key = var.to_s.sub('@','') # better to keep String as tfvar will usually use String notation, also deep_stringify_keys! earlier just in case
    value = instance_variable_get(var)
    @structure.merge!(key => value)
  end
end
build() click to toggle source

Can return nil if there's no tfvars declared

# File lib/terraspace/compiler/dsl/tfvars.rb, line 6
def build
  evaluate(@src_path)
  result = @structure.deep_stringify_keys
  JSON.pretty_generate(result) unless result.empty?
end
evaluate(path) click to toggle source
# File lib/terraspace/compiler/dsl/tfvars.rb, line 12
def evaluate(path)
  current_instance_vars = instance_variables
  evaluate_file(path) # tfvar calls creates variables in @structure
  new_instance_vars = instance_variables - current_instance_vars
  add_instance_vars!(new_instance_vars)
end