Class: TerraformDSL::Variables
- Inherits:
-
Object
- Object
- TerraformDSL::Variables
- Defined in:
- lib/terraformdsl/common.rb
Class Method Summary collapse
-
.load_tf(filename) ⇒ Object
def self.load_tfvars(__filename) eval File.read(__filename) __d = local_variables().inject({}) {|d, k| d = nil unless k.start_with?(‘__’) d } return self.new(__d) end.
Instance Method Summary collapse
- #define(name, desc = nil, default: nil) ⇒ Object
- #generate_tf ⇒ Object
-
#initialize(names = []) ⇒ Variables
constructor
A new instance of Variables.
- #method_missing(name, *args) ⇒ Object
Constructor Details
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
21 22 23 24 25 |
# File 'lib/terraformdsl/common.rb', line 21 def method_missing(name, *args) args.empty? or super @vars.key?(name) or super return @vars[name] end |
Class Method Details
.load_tf(filename) ⇒ Object
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
45 46 47 48 49 50 |
# File 'lib/terraformdsl/common.rb', line 45 def self.load_tf(filename) content = File.read(filename) rexp = /^[ \t]*variable[ \t]+"([^"]+)"/ names = []; content.scan(rexp) { names << $1 } return self.new(names) end |
Instance Method Details
#define(name, desc = nil, default: nil) ⇒ Object
16 17 18 19 |
# File 'lib/terraformdsl/common.rb', line 16 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 ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/terraformdsl/common.rb', line 27 def generate_tf() buf = [] @vars.each do |k, v| buf << v.generate_tf() end buf << "\n" return buf.join("") end |