class TerraformDSL::Variables

Public Class Methods

load_tf(filename) click to toggle source

def self.load_tfvars(__filename)

eval File.read(__filename)
__d = local_variables().inject({}) {|d, k|
  d[k] = nil unless k.start_with?('__')
  d
}
return self.new(__d)

end

# File lib/terraformdsl/common.rb, line 44
def self.load_tf(filename)
  content = File.read(filename)
  rexp = /^[ \t]*variable[ \t]+"([^"]+)"/
  names = []; content.scan(rexp) { names << $1 }
  return self.new(names)
end
new(names=[]) click to toggle source
# File lib/terraformdsl/common.rb, line 7
def initialize(names=[])
  @vars = {}
  names.each do |k|
    k = k.intern if k.is_a?(String)
    @vars[k] = Var.new(k)
  end
end

Public Instance Methods

define(name, desc=nil, default: nil) click to toggle source
# File lib/terraformdsl/common.rb, line 15
def define(name, desc=nil, default: nil)
  name = name.intern if name.is_a?(String)
  @vars[name] = Var.new(name, desc, default: default)
end
generate_tf() click to toggle source
# File lib/terraformdsl/common.rb, line 26
def generate_tf()
  buf = []
  @vars.each do |k, v|
    buf << v.generate_tf()
  end
  buf << "\n"
  return buf.join("")
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/terraformdsl/common.rb, line 20
def method_missing(name, *args)
  args.empty?  or super
  @vars.key?(name)  or super
  return @vars[name]
end