ruby-terraform 1.8.0.pre.6 → 1.8.0.pre.8
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 +65 -64
- data/lib/ruby_terraform/commands/base.rb +76 -30
- data/lib/ruby_terraform/commands/output.rb +4 -5
- data/lib/ruby_terraform/models/list.rb +1 -1
- data/lib/ruby_terraform/models/map.rb +1 -1
- data/lib/ruby_terraform/models/objects.rb +14 -14
- data/lib/ruby_terraform/models/path.rb +2 -2
- data/lib/ruby_terraform/models/plan.rb +1 -1
- data/lib/ruby_terraform/models/values.rb +7 -7
- data/lib/ruby_terraform/options/definition.rb +1 -1
- data/lib/ruby_terraform/options/name.rb +1 -1
- data/lib/ruby_terraform/options/types/flag.rb +1 -1
- data/lib/ruby_terraform/options/types/standard.rb +3 -3
- data/lib/ruby_terraform/options/values/base.rb +1 -1
- data/lib/ruby_terraform/options/values/key_value.rb +1 -1
- data/lib/ruby_terraform/version.rb +1 -1
- data/lib/ruby_terraform.rb +1 -1
- data/ruby_terraform.gemspec +2 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 908fc48e01d74bb56dfb1f87a6c644745e6e2cb20fc54e12b1d7a6b1faf6c246
|
4
|
+
data.tar.gz: 93f6b5277831d620241132bed8ace26fb817fa1ee7d65f4b44b915de3f7c334d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cac9d3ce236f366ca205e24fd7706866278d04af7dd8b281d887848a0b0a8d1535756045fb45753e572d9c9999a6105f7f54cb888e94a683dbc4840f49fe34b
|
7
|
+
data.tar.gz: d4eb8e29739ac35a4a75de7ebbf18ca36f321965676be132e5cf51a9e3548d7aa19263c682ce0c8affba89b74900bef847650858af71652e84438cfae86d6d42
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-terraform (1.8.0.pre.
|
4
|
+
ruby-terraform (1.8.0.pre.8)
|
5
5
|
immutable-struct (~> 2.4)
|
6
|
-
lino (
|
6
|
+
lino (= 3.2.0.pre.9)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activesupport (7.1.
|
11
|
+
activesupport (7.1.3.4)
|
12
12
|
base64
|
13
13
|
bigdecimal
|
14
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
@@ -18,31 +18,31 @@ GEM
|
|
18
18
|
minitest (>= 5.1)
|
19
19
|
mutex_m
|
20
20
|
tzinfo (~> 2.0)
|
21
|
-
addressable (2.8.
|
22
|
-
public_suffix (>= 2.0.2, <
|
21
|
+
addressable (2.8.7)
|
22
|
+
public_suffix (>= 2.0.2, < 7.0)
|
23
23
|
ast (2.4.2)
|
24
|
-
base64 (0.
|
25
|
-
bigdecimal (3.1.
|
24
|
+
base64 (0.2.0)
|
25
|
+
bigdecimal (3.1.8)
|
26
|
+
childprocess (5.0.0)
|
26
27
|
coderay (1.1.3)
|
27
28
|
colored2 (3.1.2)
|
28
|
-
concurrent-ruby (1.
|
29
|
+
concurrent-ruby (1.3.3)
|
29
30
|
connection_pool (2.4.1)
|
30
|
-
diff-lcs (1.5.
|
31
|
+
diff-lcs (1.5.1)
|
31
32
|
docile (1.4.0)
|
32
|
-
drb (2.
|
33
|
-
|
34
|
-
|
35
|
-
faker (3.2.2)
|
33
|
+
drb (2.2.1)
|
34
|
+
excon (0.111.0)
|
35
|
+
faker (3.4.1)
|
36
36
|
i18n (>= 1.8.11, < 2)
|
37
|
-
faraday (2.
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
ffi (1.
|
37
|
+
faraday (2.10.0)
|
38
|
+
faraday-net_http (>= 2.0, < 3.2)
|
39
|
+
logger
|
40
|
+
faraday-net_http (3.1.0)
|
41
|
+
net-http
|
42
|
+
ffi (1.17.0)
|
43
43
|
formatador (1.1.0)
|
44
44
|
gem-release (2.2.2)
|
45
|
-
git (1.
|
45
|
+
git (1.19.1)
|
46
46
|
addressable (~> 2.8)
|
47
47
|
rchardet (~> 1.8)
|
48
48
|
guard (2.18.1)
|
@@ -61,40 +61,45 @@ GEM
|
|
61
61
|
rspec (>= 2.99.0, < 4.0)
|
62
62
|
hamster (3.0.0)
|
63
63
|
concurrent-ruby (~> 1.0)
|
64
|
-
i18n (1.14.
|
64
|
+
i18n (1.14.5)
|
65
65
|
concurrent-ruby (~> 1.0)
|
66
66
|
immutable-struct (2.4.1)
|
67
|
-
json (2.
|
67
|
+
json (2.7.2)
|
68
68
|
language_server-protocol (3.17.0.3)
|
69
|
-
lino (3.
|
69
|
+
lino (3.2.0.pre.9)
|
70
|
+
childprocess (~> 5.0.0)
|
70
71
|
hamster (~> 3.0)
|
71
72
|
open4 (~> 1.3)
|
72
|
-
listen (3.
|
73
|
+
listen (3.9.0)
|
73
74
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
74
75
|
rb-inotify (~> 0.9, >= 0.9.10)
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
76
|
+
logger (1.6.0)
|
77
|
+
lumberjack (1.2.10)
|
78
|
+
method_source (1.1.0)
|
79
|
+
minitest (5.24.1)
|
80
|
+
mutex_m (0.2.0)
|
79
81
|
nenv (0.3.0)
|
82
|
+
net-http (0.4.1)
|
83
|
+
uri
|
80
84
|
notiffany (0.1.3)
|
81
85
|
nenv (~> 0.1)
|
82
86
|
shellany (~> 0.0)
|
83
|
-
octokit (8.
|
87
|
+
octokit (8.1.0)
|
88
|
+
base64
|
84
89
|
faraday (>= 1, < 3)
|
85
90
|
sawyer (~> 0.9)
|
86
91
|
open4 (1.3.4)
|
87
|
-
parallel (1.
|
88
|
-
parser (3.
|
92
|
+
parallel (1.25.1)
|
93
|
+
parser (3.3.3.0)
|
89
94
|
ast (~> 2.4.1)
|
90
95
|
racc
|
91
96
|
pry (0.14.2)
|
92
97
|
coderay (~> 1.1)
|
93
98
|
method_source (~> 1.0)
|
94
|
-
public_suffix (
|
95
|
-
racc (1.
|
99
|
+
public_suffix (6.0.0)
|
100
|
+
racc (1.8.0)
|
96
101
|
rainbow (3.1.1)
|
97
|
-
rake (13.1
|
102
|
+
rake (13.2.1)
|
98
103
|
rake_circle_ci (0.11.0)
|
99
104
|
colored2 (~> 3.1)
|
100
105
|
excon (~> 0.72)
|
@@ -125,49 +130,43 @@ GEM
|
|
125
130
|
rake_factory (~> 0.23)
|
126
131
|
sshkey (~> 2.0)
|
127
132
|
rb-fsevent (0.11.2)
|
128
|
-
rb-inotify (0.
|
133
|
+
rb-inotify (0.11.1)
|
129
134
|
ffi (~> 1.0)
|
130
135
|
rchardet (1.8.0)
|
131
|
-
regexp_parser (2.
|
132
|
-
rexml (3.
|
133
|
-
|
134
|
-
|
135
|
-
rspec-
|
136
|
-
rspec-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
regexp_parser (2.9.2)
|
137
|
+
rexml (3.3.1)
|
138
|
+
strscan
|
139
|
+
rspec (3.13.0)
|
140
|
+
rspec-core (~> 3.13.0)
|
141
|
+
rspec-expectations (~> 3.13.0)
|
142
|
+
rspec-mocks (~> 3.13.0)
|
143
|
+
rspec-core (3.13.0)
|
144
|
+
rspec-support (~> 3.13.0)
|
145
|
+
rspec-expectations (3.13.1)
|
140
146
|
diff-lcs (>= 1.2.0, < 2.0)
|
141
|
-
rspec-support (~> 3.
|
142
|
-
rspec-mocks (3.
|
147
|
+
rspec-support (~> 3.13.0)
|
148
|
+
rspec-mocks (3.13.1)
|
143
149
|
diff-lcs (>= 1.2.0, < 2.0)
|
144
|
-
rspec-support (~> 3.
|
145
|
-
rspec-support (3.
|
146
|
-
rubocop (1.
|
150
|
+
rspec-support (~> 3.13.0)
|
151
|
+
rspec-support (3.13.1)
|
152
|
+
rubocop (1.64.1)
|
147
153
|
json (~> 2.3)
|
148
154
|
language_server-protocol (>= 3.17.0)
|
149
155
|
parallel (~> 1.10)
|
150
|
-
parser (>= 3.
|
156
|
+
parser (>= 3.3.0.2)
|
151
157
|
rainbow (>= 2.2.2, < 4.0)
|
152
158
|
regexp_parser (>= 1.8, < 3.0)
|
153
159
|
rexml (>= 3.2.5, < 4.0)
|
154
|
-
rubocop-ast (>= 1.
|
160
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
155
161
|
ruby-progressbar (~> 1.7)
|
156
162
|
unicode-display_width (>= 2.4.0, < 3.0)
|
157
|
-
rubocop-ast (1.
|
158
|
-
parser (>= 3.
|
159
|
-
rubocop-capybara (2.19.0)
|
160
|
-
rubocop (~> 1.41)
|
161
|
-
rubocop-factory_bot (2.24.0)
|
162
|
-
rubocop (~> 1.33)
|
163
|
+
rubocop-ast (1.31.3)
|
164
|
+
parser (>= 3.3.1.0)
|
163
165
|
rubocop-rake (0.6.0)
|
164
166
|
rubocop (~> 1.0)
|
165
|
-
rubocop-rspec (
|
166
|
-
rubocop (~> 1.
|
167
|
-
rubocop-capybara (~> 2.17)
|
168
|
-
rubocop-factory_bot (~> 2.22)
|
167
|
+
rubocop-rspec (3.0.2)
|
168
|
+
rubocop (~> 1.61)
|
169
169
|
ruby-progressbar (1.13.0)
|
170
|
-
ruby2_keywords (0.0.5)
|
171
170
|
ruby_git_crypt (0.1.0.pre.4)
|
172
171
|
immutable-struct (~> 2.4)
|
173
172
|
lino (~> 3.0)
|
@@ -184,11 +183,13 @@ GEM
|
|
184
183
|
simplecov-html (0.12.3)
|
185
184
|
simplecov_json_formatter (0.1.4)
|
186
185
|
sshkey (2.0.0)
|
187
|
-
|
186
|
+
strscan (3.1.0)
|
187
|
+
thor (1.3.1)
|
188
188
|
tzinfo (2.0.6)
|
189
189
|
concurrent-ruby (~> 1.0)
|
190
190
|
unicode-display_width (2.5.0)
|
191
|
-
|
191
|
+
uri (0.13.0)
|
192
|
+
yard (0.9.36)
|
192
193
|
|
193
194
|
PLATFORMS
|
194
195
|
arm64-darwin-21
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'lino'
|
4
|
+
require 'tempfile'
|
4
5
|
|
5
6
|
require_relative '../errors'
|
6
7
|
|
@@ -12,12 +13,12 @@ module RubyTerraform
|
|
12
13
|
# Constructs an instance of the command.
|
13
14
|
#
|
14
15
|
def initialize(opts = {})
|
15
|
-
@binary
|
16
|
-
@logger
|
16
|
+
@binary = opts[:binary] || RubyTerraform.configuration.binary
|
17
|
+
@logger = opts[:logger] || RubyTerraform.configuration.logger
|
17
18
|
@options = opts[:options] || RubyTerraform.configuration.options
|
18
|
-
@stdin
|
19
|
-
@stdout
|
20
|
-
@stderr
|
19
|
+
@stdin = opts[:stdin] || RubyTerraform.configuration.stdin
|
20
|
+
@stdout = opts[:stdout] || RubyTerraform.configuration.stdout
|
21
|
+
@stderr = opts[:stderr] || RubyTerraform.configuration.stderr
|
21
22
|
end
|
22
23
|
|
23
24
|
# rubocop:enable Metrics/AbcSize
|
@@ -32,30 +33,24 @@ module RubyTerraform
|
|
32
33
|
# @option invocation_options [Hash<String, String>] :environment A map
|
33
34
|
# of environment variables to expose at command invocation time.
|
34
35
|
def execute(parameters = {}, invocation_options = {})
|
36
|
+
parameters = resolve_parameters(parameters)
|
37
|
+
invocation_options = resolve_invocation_options(invocation_options)
|
38
|
+
|
35
39
|
do_before(parameters)
|
36
|
-
build_and_execute_command(parameters, invocation_options)
|
40
|
+
result = build_and_execute_command(parameters, invocation_options)
|
37
41
|
do_after(parameters)
|
38
|
-
|
42
|
+
|
43
|
+
prepare_result(result, parameters, invocation_options)
|
44
|
+
rescue Lino::Errors::ExecutionError
|
39
45
|
message = "Failed while running '#{command_name}'."
|
40
46
|
logger.error(message)
|
41
47
|
raise Errors::ExecutionError, message
|
42
48
|
end
|
43
49
|
|
44
|
-
|
50
|
+
private
|
45
51
|
|
46
52
|
attr_reader :binary, :logger, :stdin, :stdout, :stderr
|
47
53
|
|
48
|
-
def build_and_execute_command(parameters, invocation_options)
|
49
|
-
command = build_command(parameters, invocation_options)
|
50
|
-
|
51
|
-
logger.debug("Running '#{command}'.")
|
52
|
-
command.execute(
|
53
|
-
stdin: stdin,
|
54
|
-
stdout: stdout,
|
55
|
-
stderr: stderr
|
56
|
-
)
|
57
|
-
end
|
58
|
-
|
59
54
|
def command_name
|
60
55
|
self.class.to_s.split('::')[-1].downcase
|
61
56
|
end
|
@@ -64,26 +59,20 @@ module RubyTerraform
|
|
64
59
|
|
65
60
|
def do_after(_parameters); end
|
66
61
|
|
67
|
-
private
|
68
|
-
|
69
62
|
def build_command(parameters, invocation_options)
|
70
|
-
parameters = resolve_parameters(parameters)
|
71
|
-
environment = invocation_options[:environment] || {}
|
72
|
-
|
73
63
|
Lino::CommandLineBuilder
|
74
64
|
.for_command(@binary)
|
75
|
-
.with_environment_variables(environment)
|
65
|
+
.with_environment_variables(invocation_options[:environment] || {})
|
76
66
|
.with_options_after_subcommands
|
77
67
|
.with_option_separator('=')
|
78
68
|
.with_appliables(@options.resolve(options, parameters))
|
79
69
|
.with_subcommands(subcommands)
|
80
|
-
.with_arguments(arguments(parameters).compact.flatten)
|
70
|
+
.with_arguments(arguments(parameters).compact.flatten)
|
71
|
+
.build
|
81
72
|
end
|
82
73
|
|
83
|
-
def
|
84
|
-
|
85
|
-
.merge(parameters)
|
86
|
-
.merge(parameter_overrides(parameters))
|
74
|
+
def process_result(result, _parameters, _invocation_options)
|
75
|
+
result
|
87
76
|
end
|
88
77
|
|
89
78
|
def parameter_defaults(_parameters)
|
@@ -94,6 +83,10 @@ module RubyTerraform
|
|
94
83
|
{}
|
95
84
|
end
|
96
85
|
|
86
|
+
def invocation_option_defaults(_invocation_options)
|
87
|
+
{ capture: [], result: :processed }
|
88
|
+
end
|
89
|
+
|
97
90
|
def subcommands
|
98
91
|
[]
|
99
92
|
end
|
@@ -105,6 +98,59 @@ module RubyTerraform
|
|
105
98
|
def arguments(_parameters)
|
106
99
|
[]
|
107
100
|
end
|
101
|
+
|
102
|
+
def build_and_execute_command(parameters, invocation_options)
|
103
|
+
command = build_command(parameters, invocation_options)
|
104
|
+
stdout = resolve_stdout(invocation_options)
|
105
|
+
stderr = resolve_stderr(invocation_options)
|
106
|
+
|
107
|
+
logger.debug("Running '#{command}'.")
|
108
|
+
command.execute(stdin:, stdout:, stderr:)
|
109
|
+
|
110
|
+
process_streams(invocation_options, stdout, stderr)
|
111
|
+
end
|
112
|
+
|
113
|
+
def resolve_parameters(parameters)
|
114
|
+
parameter_defaults(parameters)
|
115
|
+
.merge(parameters)
|
116
|
+
.merge(parameter_overrides(parameters))
|
117
|
+
end
|
118
|
+
|
119
|
+
def resolve_invocation_options(invocation_options)
|
120
|
+
invocation_option_defaults(invocation_options)
|
121
|
+
.merge(invocation_options)
|
122
|
+
end
|
123
|
+
|
124
|
+
def resolve_stdout(invocation_options)
|
125
|
+
invocation_options[:capture].include?(:stdout) ? Tempfile.new : @stdout
|
126
|
+
end
|
127
|
+
|
128
|
+
def resolve_stderr(invocation_options)
|
129
|
+
invocation_options[:capture].include?(:stderr) ? Tempfile.new : @stderr
|
130
|
+
end
|
131
|
+
|
132
|
+
def process_streams(invocation_options, stdout, stderr)
|
133
|
+
cap = invocation_options[:capture]
|
134
|
+
|
135
|
+
return nil if cap == []
|
136
|
+
|
137
|
+
result = {}
|
138
|
+
result = add_contents_to_result(cap, result, :stdout, stdout, :output)
|
139
|
+
add_contents_to_result(cap, result, :stderr, stderr, :error)
|
140
|
+
end
|
141
|
+
|
142
|
+
def add_contents_to_result(capture, result, stream_name, stream, type)
|
143
|
+
return result unless capture.include?(stream_name)
|
144
|
+
|
145
|
+
stream.rewind
|
146
|
+
result.merge({ type => stream.read })
|
147
|
+
end
|
148
|
+
|
149
|
+
def prepare_result(result, parameters, invocation_options)
|
150
|
+
return result if invocation_options[:result] == :raw
|
151
|
+
|
152
|
+
process_result(result, parameters, invocation_options)
|
153
|
+
end
|
108
154
|
end
|
109
155
|
end
|
110
156
|
end
|
@@ -42,8 +42,8 @@ module RubyTerraform
|
|
42
42
|
include RubyTerraform::Options::Global
|
43
43
|
|
44
44
|
# @!visibility private
|
45
|
-
def
|
46
|
-
|
45
|
+
def invocation_option_defaults(invocation_options)
|
46
|
+
super.merge(capture: [:stdout])
|
47
47
|
end
|
48
48
|
|
49
49
|
# @!visibility private
|
@@ -67,9 +67,8 @@ module RubyTerraform
|
|
67
67
|
end
|
68
68
|
|
69
69
|
# @!visibility private
|
70
|
-
def
|
71
|
-
result
|
72
|
-
parameters[:name] ? result.chomp : result
|
70
|
+
def process_result(result, parameters, _invocation_options)
|
71
|
+
parameters[:name] ? result[:output].chomp : result[:output]
|
73
72
|
end
|
74
73
|
end
|
75
74
|
end
|
@@ -52,7 +52,7 @@ module RubyTerraform
|
|
52
52
|
|
53
53
|
next_level = bare ? level : level + 1
|
54
54
|
self_indent = bare ? '' : indent
|
55
|
-
opts = { level: next_level, indent:
|
55
|
+
opts = { level: next_level, indent: }
|
56
56
|
extra = level.times.collect { |_| indent }.join
|
57
57
|
lines =
|
58
58
|
value
|
@@ -17,17 +17,17 @@ module RubyTerraform
|
|
17
17
|
unknown = symbolised_or_native_empty(unknown, object)
|
18
18
|
sensitive = symbolised_or_native_empty(sensitive, object)
|
19
19
|
|
20
|
-
return Values.unknown(sensitive:
|
20
|
+
return Values.unknown(sensitive:) if unknown == true
|
21
21
|
|
22
22
|
unless object.is_a?(Hash) || object.is_a?(Array)
|
23
|
-
return Values.known(object, sensitive:
|
23
|
+
return Values.known(object, sensitive:)
|
24
24
|
end
|
25
25
|
|
26
26
|
boxed_unknown =
|
27
|
-
box_unknown(unknown, sensitive
|
27
|
+
box_unknown(unknown, sensitive:, initial:)
|
28
28
|
|
29
29
|
boxed_object =
|
30
|
-
box_known(object, sensitive
|
30
|
+
box_known(object, sensitive:, initial: boxed_unknown)
|
31
31
|
|
32
32
|
boxed_object
|
33
33
|
end
|
@@ -74,34 +74,34 @@ module RubyTerraform
|
|
74
74
|
def box_unknown(unknown, sensitive: {}, initial: Values.empty_map)
|
75
75
|
path_set = paths(unknown)
|
76
76
|
unknown_values = unknown_values(
|
77
|
-
path_set, unknown
|
77
|
+
path_set, unknown:, sensitive:
|
78
78
|
)
|
79
79
|
object(
|
80
|
-
path_set, unknown_values, sensitive
|
80
|
+
path_set, unknown_values, sensitive:, initial:
|
81
81
|
)
|
82
82
|
end
|
83
83
|
|
84
84
|
def box_known(object, sensitive: {}, initial: Values.empty_map)
|
85
85
|
path_set = paths(object)
|
86
86
|
object_values = known_values(
|
87
|
-
path_set, object
|
87
|
+
path_set, object:, sensitive:
|
88
88
|
)
|
89
89
|
object(
|
90
|
-
path_set, object_values, sensitive
|
90
|
+
path_set, object_values, sensitive:, initial:
|
91
91
|
)
|
92
92
|
end
|
93
93
|
|
94
94
|
def update_all(object, path_values, sensitive = {})
|
95
95
|
path_values.each_with_object(object) do |path_value, obj|
|
96
96
|
path, value = path_value
|
97
|
-
update_in(obj, path, value, sensitive:
|
97
|
+
update_in(obj, path, value, sensitive:)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
101
|
def update_in(object, path, value, sensitive: {})
|
102
102
|
path.traverse(object) do |obj, step|
|
103
103
|
update_object_for_step(
|
104
|
-
obj, step, value, sensitive:
|
104
|
+
obj, step, value, sensitive:
|
105
105
|
)
|
106
106
|
end
|
107
107
|
end
|
@@ -128,16 +128,16 @@ module RubyTerraform
|
|
128
128
|
|
129
129
|
def boxed_empty_by_key(key, sensitive: false)
|
130
130
|
if key.is_a?(Numeric)
|
131
|
-
Values.empty_list(sensitive:
|
131
|
+
Values.empty_list(sensitive:)
|
132
132
|
else
|
133
|
-
Values.empty_map(sensitive:
|
133
|
+
Values.empty_map(sensitive:)
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
137
|
def boxed_empty_by_value(value, sensitive: false)
|
138
138
|
case value
|
139
|
-
when Array then Values.empty_list(sensitive:
|
140
|
-
when Hash then Values.empty_map(sensitive:
|
139
|
+
when Array then Values.empty_list(sensitive:)
|
140
|
+
when Hash then Values.empty_map(sensitive:)
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
@@ -122,14 +122,14 @@ module RubyTerraform
|
|
122
122
|
|
123
123
|
def initial_traversal_context(state)
|
124
124
|
{
|
125
|
-
state
|
125
|
+
state:,
|
126
126
|
step: TraversalStep.new(self.class.empty, first, drop(1))
|
127
127
|
}
|
128
128
|
end
|
129
129
|
|
130
130
|
def next_traversal_context(state, position, step)
|
131
131
|
{
|
132
|
-
state
|
132
|
+
state:,
|
133
133
|
step: TraversalStep.new(position.seen.append(step),
|
134
134
|
position.remaining.first,
|
135
135
|
position.remaining.drop(1))
|
@@ -11,31 +11,31 @@ module RubyTerraform
|
|
11
11
|
module Values
|
12
12
|
class << self
|
13
13
|
def known(value, sensitive: false)
|
14
|
-
KnownValue.new(value, sensitive:
|
14
|
+
KnownValue.new(value, sensitive:)
|
15
15
|
end
|
16
16
|
|
17
17
|
def unknown(sensitive: false)
|
18
|
-
UnknownValue.new(sensitive:
|
18
|
+
UnknownValue.new(sensitive:)
|
19
19
|
end
|
20
20
|
|
21
21
|
def omitted(sensitive: false)
|
22
|
-
OmittedValue.new(sensitive:
|
22
|
+
OmittedValue.new(sensitive:)
|
23
23
|
end
|
24
24
|
|
25
25
|
def list(value, sensitive: false)
|
26
|
-
List.new(value, sensitive:
|
26
|
+
List.new(value, sensitive:)
|
27
27
|
end
|
28
28
|
|
29
29
|
def empty_list(sensitive: false)
|
30
|
-
list([], sensitive:
|
30
|
+
list([], sensitive:)
|
31
31
|
end
|
32
32
|
|
33
33
|
def map(value, sensitive: false)
|
34
|
-
Map.new(value, sensitive:
|
34
|
+
Map.new(value, sensitive:)
|
35
35
|
end
|
36
36
|
|
37
37
|
def empty_map(sensitive: false)
|
38
|
-
map({}, sensitive:
|
38
|
+
map({}, sensitive:)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -11,7 +11,7 @@ module RubyTerraform
|
|
11
11
|
)
|
12
12
|
def initialize(name, value, **opts)
|
13
13
|
super(
|
14
|
-
name
|
14
|
+
name:, value:,
|
15
15
|
separator: opts[:separator],
|
16
16
|
placement: opts[:placement]
|
17
17
|
)
|
@@ -21,8 +21,8 @@ module RubyTerraform
|
|
21
21
|
builder.with_option(
|
22
22
|
name,
|
23
23
|
value.render,
|
24
|
-
separator
|
25
|
-
placement:
|
24
|
+
separator:,
|
25
|
+
placement:
|
26
26
|
)
|
27
27
|
end
|
28
28
|
end
|
data/lib/ruby_terraform.rb
CHANGED
data/ruby_terraform.gemspec
CHANGED
@@ -36,10 +36,10 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
37
|
spec.require_paths = ['lib']
|
38
38
|
|
39
|
-
spec.required_ruby_version = '>=
|
39
|
+
spec.required_ruby_version = '>= 3.1'
|
40
40
|
|
41
41
|
spec.add_dependency 'immutable-struct', '~> 2.4'
|
42
|
-
spec.add_dependency 'lino', '
|
42
|
+
spec.add_dependency 'lino', '3.2.0.pre.9'
|
43
43
|
|
44
44
|
spec.add_development_dependency 'bundler'
|
45
45
|
spec.add_development_dependency 'faker'
|
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.8.0.pre.
|
4
|
+
version: 1.8.0.pre.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- InfraBlocks Maintainers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: immutable-struct
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: lino
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.2.0.pre.9
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.2.0.pre.9
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -391,14 +391,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
391
391
|
requirements:
|
392
392
|
- - ">="
|
393
393
|
- !ruby/object:Gem::Version
|
394
|
-
version: '
|
394
|
+
version: '3.1'
|
395
395
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
396
396
|
requirements:
|
397
397
|
- - ">"
|
398
398
|
- !ruby/object:Gem::Version
|
399
399
|
version: 1.3.1
|
400
400
|
requirements: []
|
401
|
-
rubygems_version: 3.
|
401
|
+
rubygems_version: 3.3.7
|
402
402
|
signing_key:
|
403
403
|
specification_version: 4
|
404
404
|
summary: A simple Ruby wrapper for invoking Terraform commands.
|