tfdsl 0.1.6 → 0.1.11
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/Gemfile.lock +5 -3
- data/lib/tfdsl/block.rb +14 -3
- 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 +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e3ed7ad4bd1cea523d00c34a641f04ddb53ef3c9162aac8d119af7e1024b02a
|
4
|
+
data.tar.gz: f2741e78405e6f64a87b73bf238bb87f5f3e8b76c65b9eedc92d93f2536302c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 326079630322cca9e9219ec70d5038cb29d45f2b2032ed4a5f230d26c9f5f6bd8ac378d5b3fc3ba358dcc7cdd205db5cd10f64632e8d2e9f1192a2f559c606a5
|
7
|
+
data.tar.gz: 7a2e4062d919909b291b6562556f87f2dce6b926aa23838e56b027fd32287f2e954a45f46ebb23e2c078d5a0619d7eb774df231bb2f20168bdf8f4d4ae924526
|
data/.rubocop.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.11)
|
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
@@ -11,6 +11,10 @@ module TFDSL
|
|
11
11
|
|
12
12
|
def method_missing(method_name, *args, &block)
|
13
13
|
super if [:respond_to_missing?].include? method_name
|
14
|
+
return method_missing_handler(method_name, *args, &block)
|
15
|
+
end
|
16
|
+
|
17
|
+
def method_missing_handler(method_name, *args, &block)
|
14
18
|
method = method_name.to_s.gsub(/=$/, '')
|
15
19
|
|
16
20
|
if block_given?
|
@@ -25,6 +29,10 @@ module TFDSL
|
|
25
29
|
return instance_variable_get "@#{method}" if args.empty?
|
26
30
|
end
|
27
31
|
|
32
|
+
def timeout(*args, &block)
|
33
|
+
method_missing_handler :timeout, *args, &block
|
34
|
+
end
|
35
|
+
|
28
36
|
def respond_to_missing?(_method_name, _include_private = true)
|
29
37
|
true
|
30
38
|
end
|
@@ -50,7 +58,7 @@ module TFDSL
|
|
50
58
|
labels = [__type__] + labels if !__type__.empty? && depth.zero?
|
51
59
|
|
52
60
|
labels.each do |l|
|
53
|
-
ref[l] = {}
|
61
|
+
ref[l] = {} if ref[l].nil?
|
54
62
|
ref = ref[l]
|
55
63
|
end
|
56
64
|
|
@@ -64,13 +72,16 @@ module TFDSL
|
|
64
72
|
__blocks__.each do |b|
|
65
73
|
json = b.to_json_repr depth + 1
|
66
74
|
if b.__labels__.empty?
|
67
|
-
ref[b.__type__]
|
75
|
+
if ref[b.__type__].nil?
|
76
|
+
ref[b.__type__] = json
|
77
|
+
else
|
78
|
+
ref[b.__type__] = [ref[b.__type__], json].flatten
|
79
|
+
end
|
68
80
|
else
|
69
81
|
ref[b.__type__] = [] if ref[b.__type__].nil?
|
70
82
|
ref[b.__type__] << json
|
71
83
|
end
|
72
84
|
end
|
73
|
-
|
74
85
|
block['tmp']
|
75
86
|
end
|
76
87
|
end
|
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.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Lopo
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-15 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
|
@@ -161,7 +175,7 @@ homepage: https://github.com/tlopo-ruby/tfdsl.git
|
|
161
175
|
licenses:
|
162
176
|
- MIT
|
163
177
|
metadata: {}
|
164
|
-
post_install_message:
|
178
|
+
post_install_message:
|
165
179
|
rdoc_options: []
|
166
180
|
require_paths:
|
167
181
|
- lib
|
@@ -176,8 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
190
|
- !ruby/object:Gem::Version
|
177
191
|
version: '0'
|
178
192
|
requirements: []
|
179
|
-
rubygems_version: 3.
|
180
|
-
signing_key:
|
193
|
+
rubygems_version: 3.1.2
|
194
|
+
signing_key:
|
181
195
|
specification_version: 4
|
182
196
|
summary: A chef like DSL for terraform
|
183
197
|
test_files: []
|