rspec-terraform 0.1.0.pre.20 → 0.1.0.pre.23
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 +1 -1
- data/lib/rspec/terraform/configuration/merger.rb +54 -0
- data/lib/rspec/terraform/configuration/providers/identity.rb +1 -1
- data/lib/rspec/terraform/configuration/providers/in_memory.rb +3 -11
- data/lib/rspec/terraform/configuration.rb +1 -0
- data/lib/rspec/terraform/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20b9a3c95d0e46b73b0da4b3900f76fc3df5d26a7e7ff2e0301acc6b25cc14f4
|
4
|
+
data.tar.gz: 2de99c52157ff998a66f583100fab8237c60611093224e081a8b481b81361daf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c184db2e3ec377f97dc944b98332cdaf78f3f01140e01a06cb5af0ba151eb6a8913e734a971582af5ab01d6a55afec75ca186d69e7fea732b2c065a2d6367f3
|
7
|
+
data.tar.gz: 6c46f3220718f37804eed3284eb80757ea0922a1048fc2d179e44efc003026bdd810188f5efcfad0e243b42a675c26399bfa4c065422268f4be0774664020668
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Terraform
|
5
|
+
module Configuration
|
6
|
+
class Merger
|
7
|
+
def merge(left, right)
|
8
|
+
merge_top_level(left, right)
|
9
|
+
.merge(merge_accumulating_maps(left, right))
|
10
|
+
.merge(merge_accumulating_lists(left, right))
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def merge_top_level(left, right)
|
16
|
+
left.merge(right)
|
17
|
+
end
|
18
|
+
|
19
|
+
def merge_accumulating_maps(left, right)
|
20
|
+
%i[vars backend_config].inject({}) do |merged, parameter|
|
21
|
+
merge_accumulating_map(parameter, merged, left, right)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def merge_accumulating_map(parameter, accumulator, left, right)
|
26
|
+
left_value = left[parameter] || {}
|
27
|
+
right_value = right[parameter] || {}
|
28
|
+
merged_value = left_value.merge(right_value)
|
29
|
+
|
30
|
+
return accumulator if merged_value == {}
|
31
|
+
|
32
|
+
accumulator.merge(parameter => merged_value)
|
33
|
+
end
|
34
|
+
|
35
|
+
def merge_accumulating_lists(left, right)
|
36
|
+
%i[var_files targets replaces plugin_dirs platforms]
|
37
|
+
.inject({}) do |merged, parameter|
|
38
|
+
merge_accumulating_list(parameter, merged, left, right)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def merge_accumulating_list(parameter, accumulator, left, right)
|
43
|
+
left_value = left[parameter] || []
|
44
|
+
right_value = right[parameter] || []
|
45
|
+
merged_value = left_value + right_value
|
46
|
+
|
47
|
+
return accumulator if merged_value == []
|
48
|
+
|
49
|
+
accumulator.merge(parameter => merged_value)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'ruby_terraform'
|
4
|
+
require_relative '../merger'
|
4
5
|
|
5
6
|
module RSpec
|
6
7
|
module Terraform
|
@@ -11,20 +12,11 @@ module RSpec
|
|
11
12
|
|
12
13
|
def initialize(configuration = {})
|
13
14
|
@configuration = configuration
|
15
|
+
@merger = Merger.new
|
14
16
|
end
|
15
17
|
|
16
18
|
def resolve(overrides = {})
|
17
|
-
|
18
|
-
right_vars = overrides[:vars] || {}
|
19
|
-
vars = left_vars.merge(right_vars)
|
20
|
-
|
21
|
-
top_level_merge = configuration.merge(overrides)
|
22
|
-
|
23
|
-
if left_vars == {} && right_vars == {}
|
24
|
-
top_level_merge
|
25
|
-
else
|
26
|
-
top_level_merge.merge(vars: vars)
|
27
|
-
end
|
19
|
+
@merger.merge(configuration, overrides)
|
28
20
|
end
|
29
21
|
end
|
30
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre.
|
4
|
+
version: 0.1.0.pre.23
|
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-08-
|
11
|
+
date: 2022-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -280,6 +280,7 @@ files:
|
|
280
280
|
- bin/setup
|
281
281
|
- lib/rspec/terraform.rb
|
282
282
|
- lib/rspec/terraform/configuration.rb
|
283
|
+
- lib/rspec/terraform/configuration/merger.rb
|
283
284
|
- lib/rspec/terraform/configuration/providers.rb
|
284
285
|
- lib/rspec/terraform/configuration/providers/identity.rb
|
285
286
|
- lib/rspec/terraform/configuration/providers/in_memory.rb
|