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