tfdsl 0.1.5 → 0.1.10
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/.rubocop.yml +4 -0
- data/.travis.yml +0 -1
- data/Gemfile.lock +5 -3
- data/lib/tfdsl/block.rb +6 -3
- data/lib/tfdsl/formatter.rb +3 -0
- data/lib/tfdsl/stack.rb +3 -2
- data/lib/tfdsl/template.rb +9 -4
- data/lib/tfdsl/version.rb +1 -1
- data/tfdsl.gemspec +2 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 188ff59f9e8c63a9d7123ed9900db3079a74b17f16926b11cebf3863db5cbf41
|
4
|
+
data.tar.gz: 45d14091543dfe0e02512247dffbcf97550432715c357e2ab382c62482a9856d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71f58ea39f028ddb1dfc1ddf06388e02975bb0583bd3da4db9571e6ea14b10d8f60ec66b7bc19824417e106a3d961c52414b98913c7b265ad272d9aab3357b49
|
7
|
+
data.tar.gz: 4dff89253f6ede3be10703f0a1a7ee41d43ffbeac17de45f69ee8c9b8fc7a187451ab5288ad37b6d2a8f5514a70ff87a9fd487cca46013e163263e631b194cb7
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tfdsl (0.1.
|
4
|
+
tfdsl (0.1.10)
|
5
|
+
deep_merge (~> 1.2)
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
@@ -16,6 +17,7 @@ GEM
|
|
16
17
|
term-ansicolor (~> 1.3)
|
17
18
|
thor (~> 0.19.4)
|
18
19
|
tins (~> 1.6)
|
20
|
+
deep_merge (1.2.1)
|
19
21
|
docile (1.3.1)
|
20
22
|
jaro_winkler (1.5.2)
|
21
23
|
json (2.1.0)
|
@@ -31,7 +33,7 @@ GEM
|
|
31
33
|
pry-coolline (0.2.5)
|
32
34
|
coolline (~> 0.5)
|
33
35
|
rainbow (3.0.0)
|
34
|
-
rake (
|
36
|
+
rake (13.0.1)
|
35
37
|
rubocop (0.63.1)
|
36
38
|
jaro_winkler (~> 1.5.1)
|
37
39
|
parallel (~> 1.10)
|
@@ -62,7 +64,7 @@ DEPENDENCIES
|
|
62
64
|
minitest (~> 5.0)
|
63
65
|
pry (~> 0.12)
|
64
66
|
pry-coolline (~> 0.2)
|
65
|
-
rake (~>
|
67
|
+
rake (~> 13.0)
|
66
68
|
rubocop (~> 0.63)
|
67
69
|
simplecov (~> 0.16)
|
68
70
|
tfdsl!
|
data/lib/tfdsl/block.rb
CHANGED
@@ -50,7 +50,7 @@ module TFDSL
|
|
50
50
|
labels = [__type__] + labels if !__type__.empty? && depth.zero?
|
51
51
|
|
52
52
|
labels.each do |l|
|
53
|
-
ref[l] = {}
|
53
|
+
ref[l] = {} if ref[l].nil?
|
54
54
|
ref = ref[l]
|
55
55
|
end
|
56
56
|
|
@@ -64,13 +64,16 @@ module TFDSL
|
|
64
64
|
__blocks__.each do |b|
|
65
65
|
json = b.to_json_repr depth + 1
|
66
66
|
if b.__labels__.empty?
|
67
|
-
ref[b.__type__]
|
67
|
+
if ref[b.__type__].nil?
|
68
|
+
ref[b.__type__] = json
|
69
|
+
else
|
70
|
+
ref[b.__type__] = [ref[b.__type__], json].flatten
|
71
|
+
end
|
68
72
|
else
|
69
73
|
ref[b.__type__] = [] if ref[b.__type__].nil?
|
70
74
|
ref[b.__type__] << json
|
71
75
|
end
|
72
76
|
end
|
73
|
-
|
74
77
|
block['tmp']
|
75
78
|
end
|
76
79
|
end
|
data/lib/tfdsl/formatter.rb
CHANGED
data/lib/tfdsl/stack.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'deep_merge'
|
1
2
|
module TFDSL
|
2
3
|
# This class is the representation of a terraform stack, or in another words
|
3
4
|
# is a collection of terraform configuration blocks
|
@@ -27,9 +28,9 @@ module TFDSL
|
|
27
28
|
@objects.each do |obj|
|
28
29
|
key = KindTranslator.kind obj.class
|
29
30
|
stack[key] = {} if stack[key].nil?
|
30
|
-
stack[key] = stack[key].
|
31
|
+
stack[key] = stack[key].deep_merge obj.to_json_repr
|
31
32
|
end
|
32
|
-
stack
|
33
|
+
JSON.pretty_generate(stack)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
data/lib/tfdsl/template.rb
CHANGED
@@ -7,20 +7,25 @@ module TFDSL
|
|
7
7
|
template = <<-TEXT.gsub(/^ {6}/, '')
|
8
8
|
<%=name%> = <%=DataFormatter.new.format value%>
|
9
9
|
TEXT
|
10
|
-
ERB.new(template,
|
10
|
+
ERB.new(template, trim_mode: '-').result(binding).strip
|
11
11
|
end
|
12
12
|
|
13
13
|
def map(name, value)
|
14
14
|
template = <<-TEXT.gsub(/^ {6}/, '')
|
15
15
|
<%=name%> = <%=DataFormatter.new.format value%>
|
16
16
|
TEXT
|
17
|
-
ERB.new(template,
|
17
|
+
ERB.new(template, trim_mode: '-').result(binding).strip
|
18
18
|
end
|
19
19
|
|
20
20
|
def child_block(value)
|
21
21
|
labels = value.__labels__.nil? ? [] : value.__labels__
|
22
22
|
labels_str = labels.map { |l| %("#{l}") }.join ' '
|
23
23
|
type = value.__type__.nil? ? '' : %( #{value.__type__} )
|
24
|
+
|
25
|
+
# This is just to get ride of the warning of unused variables
|
26
|
+
# The variable are used, but as part of binding
|
27
|
+
_ = "#{labels_str}, #{type}"
|
28
|
+
|
24
29
|
template = <<-TEXT.gsub(/^ {6}/, '')
|
25
30
|
<%=type%><%=labels_str%> {
|
26
31
|
<%- unless value.to_s.empty? -%>
|
@@ -28,14 +33,14 @@ module TFDSL
|
|
28
33
|
<%- end -%>
|
29
34
|
}
|
30
35
|
TEXT
|
31
|
-
ERB.new(template,
|
36
|
+
ERB.new(template, trim_mode: '-').result(binding).strip
|
32
37
|
end
|
33
38
|
|
34
39
|
def value(name, value)
|
35
40
|
template = <<-TEXT.gsub(/^ {6}/, '')
|
36
41
|
<%=name%> = "<%=value%>"
|
37
42
|
TEXT
|
38
|
-
ERB.new(template,
|
43
|
+
ERB.new(template, trim_mode: '-').result(binding).strip
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
data/lib/tfdsl/version.rb
CHANGED
data/tfdsl.gemspec
CHANGED
@@ -31,12 +31,13 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
+
spec.add_dependency 'deep_merge', '~> 1.2'
|
34
35
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
35
36
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
36
37
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
37
38
|
spec.add_development_dependency 'pry', '~> 0.12'
|
38
39
|
spec.add_development_dependency 'pry-coolline', '~> 0.2'
|
39
|
-
spec.add_development_dependency 'rake', '~>
|
40
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
40
41
|
spec.add_development_dependency 'rubocop', '~> 0.63'
|
41
42
|
spec.add_development_dependency 'simplecov', '~> 0.16'
|
42
43
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tfdsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Lopo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: deep_merge
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +100,14 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
103
|
+
version: '13.0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
110
|
+
version: '13.0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rubocop
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|