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
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ruby_terraform/models/objects.rb', line 14 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:) if unknown == true unless object.is_a?(Hash) || object.is_a?(Array) return Values.known(object, sensitive:) end boxed_unknown = box_unknown(unknown, sensitive:, initial:) boxed_object = box_known(object, sensitive:, initial: boxed_unknown) boxed_object end |
.known_values(path_set, object: {}, sensitive: {}) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/ruby_terraform/models/objects.rb', line 41 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
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ruby_terraform/models/objects.rb', line 59 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
37 38 39 |
# File 'lib/ruby_terraform/models/objects.rb', line 37 def paths(object) PathSet.extract_from(object) end |
.unknown_values(path_set, unknown: {}, sensitive: {}) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/ruby_terraform/models/objects.rb', line 50 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 |