Module: RubyTerraform::Models::Objects
- Defined in:
- lib/ruby_terraform/models/objects.rb
Overview
rubocop:disable Metrics/ModuleLength
Class Method Summary collapse
-
.box(object, unknown: nil, sensitive: nil) ⇒ Object
rubocop:disable Style/RedundantAssignment rubocop:disable Metrics/MethodLength.
- .known_values(path_set, object: {}, sensitive: {}) ⇒ Object
- .object(path_set, values, sensitive: {}, initial: Values.empty_map, filler: Values.omitted) ⇒ Object
-
.paths(object) ⇒ Object
rubocop:enable Metrics/MethodLength rubocop:enable Style/RedundantAssignment.
- .unknown_values(path_set, unknown: {}, sensitive: {}) ⇒ Object
Class Method Details
.box(object, unknown: nil, sensitive: nil) ⇒ Object
rubocop:disable Style/RedundantAssignment rubocop:disable Metrics/MethodLength
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ruby_terraform/models/objects.rb', line 13 def box(object, unknown: nil, sensitive: nil) initial = boxed_empty_by_value(object) object = symbolise(object) unknown = symbolised_or_native_empty(unknown, object) sensitive = symbolised_or_native_empty(sensitive, object) return Values.unknown(sensitive: sensitive) if unknown == true unless object.is_a?(Hash) || object.is_a?(Array) return Values.known(object, sensitive: sensitive) end boxed_unknown = box_unknown(unknown, sensitive: sensitive, initial: initial) boxed_object = box_known(object, sensitive: sensitive, initial: boxed_unknown) boxed_object end |
.known_values(path_set, object: {}, sensitive: {}) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/ruby_terraform/models/objects.rb', line 40 def known_values(path_set, object: {}, sensitive: {}) path_set.paths.map do |path| resolved = path.read(object) resolved_sensitive = path.read(sensitive) == true Values.known(resolved, sensitive: resolved_sensitive) end end |
.object(path_set, values, sensitive: {}, initial: Values.empty_map, filler: Values.omitted) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/ruby_terraform/models/objects.rb', line 58 def object(path_set, values, sensitive: {}, initial: Values.empty_map, filler: Values.omitted) gaps = path_set.gaps extra_values = gaps.paths.collect { |p| [p, filler] } path_values = path_set.paths.zip(values) + extra_values path_values = sort_by_path(path_values) update_all(initial, path_values, sensitive) end |
.paths(object) ⇒ Object
rubocop:enable Metrics/MethodLength rubocop:enable Style/RedundantAssignment
36 37 38 |
# File 'lib/ruby_terraform/models/objects.rb', line 36 def paths(object) PathSet.extract_from(object) end |
.unknown_values(path_set, unknown: {}, sensitive: {}) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/ruby_terraform/models/objects.rb', line 49 def unknown_values(path_set, unknown: {}, sensitive: {}) path_set.paths.map do |path| resolved = path.read(unknown) resolved_sensitive = path.read(sensitive) == true resolved ? Values.unknown(sensitive: resolved_sensitive) : nil end end |