Class: RubyTerraform::Models::Map

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable, ValueEquality
Defined in:
lib/ruby_terraform/models/map.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ValueEquality

#==, #hash

Constructor Details

#initialize(value, sensitive: false) ⇒ Map

Returns a new instance of Map.



31
32
33
34
# File 'lib/ruby_terraform/models/map.rb', line 31

def initialize(value, sensitive: false)
  @value = value.transform_keys(&:to_sym)
  @sensitive = sensitive
end

Instance Attribute Details

#valueObject (readonly)

Returns the value of attribute value.



36
37
38
# File 'lib/ruby_terraform/models/map.rb', line 36

def value
  @value
end

Instance Method Details

#inspectObject Also known as: to_s



69
70
71
72
# File 'lib/ruby_terraform/models/map.rb', line 69

def inspect
  sensitive = sensitive? ? 'sensitive' : 'non-sensitive'
  "#{value.inspect} (#{sensitive})"
end

#known?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/ruby_terraform/models/map.rb', line 42

def known?
  true
end

#render(bare: false, level: 0, indent: ' ') ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/ruby_terraform/models/map.rb', line 50

def render(bare: false, level: 0, indent: '  ')
  return '{}' if empty?

  next_level = bare ? level : level + 1
  self_indent = bare ? '' : indent
  opts = { level: next_level, indent: }
  extra = level.times.collect { |_| indent }.join
  lines =
    value
    .collect { |k, v| "#{extra}#{self_indent}#{k} = #{v.render(**opts)}" }
    .join("\n")

  bare ? lines : "{\n#{lines}\n#{extra}}"
end

#sensitive?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/ruby_terraform/models/map.rb', line 46

def sensitive?
  @sensitive
end

#stateObject



65
66
67
# File 'lib/ruby_terraform/models/map.rb', line 65

def state
  [@value, @sensitive]
end

#unboxObject



38
39
40
# File 'lib/ruby_terraform/models/map.rb', line 38

def unbox
  value.transform_values(&:unbox)
end