Class: Terraspace::Terraform::Args::Custom

Inherits:
Object
  • Object
show all
Extended by:
Memoist
Includes:
DslEvaluator, Dsl
Defined in:
lib/terraspace/terraform/args/custom.rb

Constant Summary

Constants included from Shorthands

Shorthands::COMMANDS_WITH_INPUT, Shorthands::COMMANDS_WITH_LOCKING, Shorthands::COMMANDS_WITH_PARALLELISM, Shorthands::COMMANDS_WITH_VARS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Dsl

#command, #each_command, #shorthand?, #shorthand_commands

Methods included from Shorthands

#shorthands

Constructor Details

#initialize(mod, name) ⇒ Custom

Returns a new instance of Custom.



8
9
10
11
12
# File 'lib/terraspace/terraform/args/custom.rb', line 8

def initialize(mod, name)
  @mod, @name = mod, name
  @file = "#{Terraspace.root}/config/cli/args.rb"
  @commands = {}
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



7
8
9
# File 'lib/terraspace/terraform/args/custom.rb', line 7

def name
  @name
end

Instance Method Details

#argsObject



21
22
23
24
25
# File 'lib/terraspace/terraform/args/custom.rb', line 21

def args
  build
  args = dig("args")
  args.compact.flatten
end

#buildObject



14
15
16
17
18
# File 'lib/terraspace/terraform/args/custom.rb', line 14

def build
  return @commands unless File.exist?(@file)
  evaluate_file(@file)
  @commands.deep_stringify_keys!
end

#dig(prop, default = []) ⇒ Object



43
44
45
# File 'lib/terraspace/terraform/args/custom.rb', line 43

def dig(prop, default=[])
  @commands.dig(@name, prop) || default
end

#env_varsObject



34
35
36
37
# File 'lib/terraspace/terraform/args/custom.rb', line 34

def env_vars
  build
  dig("env", {})
end

#var_file_exist?(var_file) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/terraspace/terraform/args/custom.rb', line 39

def var_file_exist?(var_file)
  File.exist?("#{@mod.cache_dir}/#{var_file}")
end

#var_filesObject



27
28
29
30
31
32
# File 'lib/terraspace/terraform/args/custom.rb', line 27

def var_files
  build
  var_files = dig("var_files")
  var_files.select! { |f| var_file_exist?(f) }
  var_files.map { |f| "-var-file=#{f}" }
end