ruby-terraform 1.7.0.pre.1 → 1.7.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/lib/ruby_terraform/models/objects.rb +52 -13
- 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: f456092f582718db648a5bdfab600d022ffd02b464da155088de1f1ca5247aa2
|
4
|
+
data.tar.gz: e79d368374b9f892ac2fec66d5262f6b9d0999542772e8542912b18791ac1656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e00c371ab4abea3f4d9448fc8a9fdd0dcdb7abcdd069aeb77f74ef1f16944dd2bc1f597cdb9ff5c6b2ede990f35c064adcb56dac50bcb9ac9cd74c0a1411703
|
7
|
+
data.tar.gz: 01f44d86b1c2ef64a2ea9511a14ece5903d34e554b6908cfe9c41dd724e2a3d7f934fca8f1168b9c94544dcf2b07fb20c3d94f1071dbc408ea8825819eb2398a
|
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.2)
|
5
5
|
immutable-struct (~> 2.4)
|
6
6
|
lino (~> 3.0)
|
7
7
|
|
@@ -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)
|
@@ -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.2
|
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-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: immutable-struct
|