ruby-terraform 1.7.0.pre.1 → 1.7.0.pre.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +10 -7
- data/lib/ruby_terraform/models/known_value.rb +1 -0
- data/lib/ruby_terraform/models/list.rb +8 -0
- data/lib/ruby_terraform/models/map.rb +8 -0
- data/lib/ruby_terraform/models/objects.rb +52 -13
- data/lib/ruby_terraform/models/unknown_value.rb +5 -0
- data/lib/ruby_terraform/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7e33039e6162acf99865f3e33e3208d288bc93b7c1a43d39c3b44f137bdcf92
|
4
|
+
data.tar.gz: 7e7ef758f7bb5bdbeabbda16019c49afe3305aaba9089787d4681f3e875a2f3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80ab103749e2a57d90d339b83171f2e56128523aea06cfb2643b6e5c30d5bddb340734e3b3ca0248188217807b284c6c47c922fba7de6ec507d4771f90e2c659
|
7
|
+
data.tar.gz: 0b70beb4a0efd237b1aab284068eaaa244c45c62050b115fdc8e793f6347ab7b85b8adc8e824569fcd09e08fc055842e27a1bfa8456efe5723c1bf9aacdd61f7
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-terraform (1.7.0.pre.
|
4
|
+
ruby-terraform (1.7.0.pre.4)
|
5
5
|
immutable-struct (~> 2.4)
|
6
6
|
lino (~> 3.0)
|
7
7
|
|
@@ -59,12 +59,12 @@ GEM
|
|
59
59
|
rb-inotify (~> 0.9, >= 0.9.10)
|
60
60
|
lumberjack (1.2.8)
|
61
61
|
method_source (1.0.0)
|
62
|
-
minitest (5.16.
|
62
|
+
minitest (5.16.2)
|
63
63
|
nenv (0.3.0)
|
64
64
|
notiffany (0.1.3)
|
65
65
|
nenv (~> 0.1)
|
66
66
|
shellany (~> 0.0)
|
67
|
-
octokit (4.25.
|
67
|
+
octokit (4.25.1)
|
68
68
|
faraday (>= 1, < 3)
|
69
69
|
sawyer (~> 0.9)
|
70
70
|
open4 (1.3.4)
|
@@ -115,7 +115,7 @@ GEM
|
|
115
115
|
diff-lcs (>= 1.2.0, < 2.0)
|
116
116
|
rspec-support (~> 3.11.0)
|
117
117
|
rspec-support (3.11.0)
|
118
|
-
rubocop (1.31.
|
118
|
+
rubocop (1.31.2)
|
119
119
|
json (~> 2.3)
|
120
120
|
parallel (~> 1.10)
|
121
121
|
parser (>= 3.1.0.0)
|
@@ -129,8 +129,8 @@ GEM
|
|
129
129
|
parser (>= 3.1.1.0)
|
130
130
|
rubocop-rake (0.6.0)
|
131
131
|
rubocop (~> 1.0)
|
132
|
-
rubocop-rspec (2.
|
133
|
-
rubocop (~> 1.
|
132
|
+
rubocop-rspec (2.12.1)
|
133
|
+
rubocop (~> 1.31)
|
134
134
|
ruby-progressbar (1.11.0)
|
135
135
|
ruby2_keywords (0.0.5)
|
136
136
|
ruby_gpg2 (0.8.0)
|
@@ -155,7 +155,10 @@ GEM
|
|
155
155
|
webrick (~> 1.7.0)
|
156
156
|
|
157
157
|
PLATFORMS
|
158
|
+
arm64-darwin-21
|
158
159
|
ruby
|
160
|
+
x86_64-darwin-19
|
161
|
+
x86_64-linux
|
159
162
|
|
160
163
|
DEPENDENCIES
|
161
164
|
bundler
|
@@ -177,4 +180,4 @@ DEPENDENCIES
|
|
177
180
|
yard
|
178
181
|
|
179
182
|
BUNDLED WITH
|
180
|
-
2.3.
|
183
|
+
2.3.18
|
@@ -8,14 +8,21 @@ module RubyTerraform
|
|
8
8
|
module Objects
|
9
9
|
class << self
|
10
10
|
# rubocop:disable Style/RedundantAssignment
|
11
|
-
def box(object, unknown:
|
11
|
+
def box(object, unknown: nil, sensitive: nil)
|
12
|
+
initial = boxed_empty_by_value(object)
|
13
|
+
unknown ||= native_empty_by_value(object)
|
14
|
+
sensitive ||= native_empty_by_value(object)
|
15
|
+
|
16
|
+
return Values.unknown(sensitive: sensitive) if unknown == true
|
17
|
+
|
12
18
|
boxed_unknown =
|
13
|
-
box_unknown(unknown, sensitive: sensitive)
|
19
|
+
box_unknown(unknown, sensitive: sensitive, initial: initial)
|
14
20
|
boxed_object =
|
15
21
|
box_known(object, sensitive: sensitive, initial: boxed_unknown)
|
16
22
|
|
17
23
|
boxed_object
|
18
24
|
end
|
25
|
+
|
19
26
|
# rubocop:enable Style/RedundantAssignment
|
20
27
|
|
21
28
|
def paths(object, current = [], accumulator = [])
|
@@ -49,11 +56,15 @@ module RubyTerraform
|
|
49
56
|
|
50
57
|
private
|
51
58
|
|
59
|
+
# rubocop:disable Metrics/MethodLength
|
52
60
|
def box_unknown(unknown, sensitive: {}, initial: Values.empty_map)
|
53
61
|
unknown_paths = paths(unknown)
|
62
|
+
if root_path(unknown_paths)
|
63
|
+
return Values.unknown(sensitive: sensitive)
|
64
|
+
end
|
65
|
+
|
54
66
|
unknown_values = unknown_values(
|
55
|
-
unknown_paths,
|
56
|
-
unknown: unknown, sensitive: sensitive
|
67
|
+
unknown_paths, unknown: unknown, sensitive: sensitive
|
57
68
|
)
|
58
69
|
|
59
70
|
object(
|
@@ -61,12 +72,17 @@ module RubyTerraform
|
|
61
72
|
sensitive: sensitive, initial: initial
|
62
73
|
)
|
63
74
|
end
|
75
|
+
# rubocop:enable Metrics/MethodLength
|
64
76
|
|
77
|
+
# rubocop:disable Metrics/MethodLength
|
65
78
|
def box_known(object, sensitive: {}, initial: Values.empty_map)
|
66
79
|
object_paths = paths(object)
|
80
|
+
if root_path(object_paths)
|
81
|
+
return Values.known(object, sensitive: sensitive)
|
82
|
+
end
|
83
|
+
|
67
84
|
object_values = known_values(
|
68
|
-
object_paths,
|
69
|
-
object: object, sensitive: sensitive
|
85
|
+
object_paths, object: object, sensitive: sensitive
|
70
86
|
)
|
71
87
|
|
72
88
|
object(
|
@@ -74,6 +90,7 @@ module RubyTerraform
|
|
74
90
|
sensitive: sensitive, initial: initial
|
75
91
|
)
|
76
92
|
end
|
93
|
+
# rubocop:enable Metrics/MethodLength
|
77
94
|
|
78
95
|
def object(paths, values, sensitive: {}, initial: Values.empty_map)
|
79
96
|
paths
|
@@ -95,6 +112,7 @@ module RubyTerraform
|
|
95
112
|
object
|
96
113
|
end
|
97
114
|
|
115
|
+
# rubocop:disable Metrics/MethodLength
|
98
116
|
def update_object_for_step(object, pointer, value, sensitive: {})
|
99
117
|
seen, step, remaining = pointer
|
100
118
|
|
@@ -102,14 +120,16 @@ module RubyTerraform
|
|
102
120
|
upcoming = remaining.first
|
103
121
|
|
104
122
|
resolved_sensitive = try_dig(sensitive, seen + [step]) == true
|
105
|
-
resolved =
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
123
|
+
resolved =
|
124
|
+
if remaining.empty?
|
125
|
+
value
|
126
|
+
else
|
127
|
+
boxed_empty_by_key(upcoming, sensitive: resolved_sensitive)
|
128
|
+
end
|
110
129
|
|
111
130
|
parent[step] ||= resolved
|
112
131
|
end
|
132
|
+
# rubocop:enable Metrics/MethodLength
|
113
133
|
|
114
134
|
def update_context_for_step(pointer)
|
115
135
|
seen, step, remaining = pointer
|
@@ -125,14 +145,29 @@ module RubyTerraform
|
|
125
145
|
default
|
126
146
|
end
|
127
147
|
|
128
|
-
def
|
129
|
-
if
|
148
|
+
def boxed_empty_by_key(key, sensitive: false)
|
149
|
+
if key.is_a?(Numeric)
|
130
150
|
Values.empty_list(sensitive: sensitive)
|
131
151
|
else
|
132
152
|
Values.empty_map(sensitive: sensitive)
|
133
153
|
end
|
134
154
|
end
|
135
155
|
|
156
|
+
def boxed_empty_by_value(value, sensitive: false)
|
157
|
+
case value
|
158
|
+
when Array then Values.empty_list(sensitive: sensitive)
|
159
|
+
when Hash then Values.empty_map(sensitive: sensitive)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def native_empty_by_value(value)
|
164
|
+
case value
|
165
|
+
when Array then []
|
166
|
+
when Hash then {}
|
167
|
+
else false
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
136
171
|
def normalise(object)
|
137
172
|
case object
|
138
173
|
when Array then object.each_with_index.to_a
|
@@ -140,6 +175,10 @@ module RubyTerraform
|
|
140
175
|
else object
|
141
176
|
end
|
142
177
|
end
|
178
|
+
|
179
|
+
def root_path(paths)
|
180
|
+
paths.count == 1 && paths[0].empty?
|
181
|
+
end
|
143
182
|
end
|
144
183
|
end
|
145
184
|
# rubocop:enable Metrics/ModuleLength
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.0.pre.
|
4
|
+
version: 1.7.0.pre.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- InfraBlocks Maintainers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: immutable-struct
|