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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53563b8b3088da24df347a50b3b4e2395693adcece9a8b989551319a2c578bbb
4
- data.tar.gz: 37b84c6ff14faa80f7937ba523f283ab69d4785a139a1093164d1b5a247c09d3
3
+ metadata.gz: 3e3ed7ad4bd1cea523d00c34a641f04ddb53ef3c9162aac8d119af7e1024b02a
4
+ data.tar.gz: f2741e78405e6f64a87b73bf238bb87f5f3e8b76c65b9eedc92d93f2536302c4
5
5
  SHA512:
6
- metadata.gz: cab4005373305f9952341bd0f18f030b29e120c0587171f21ca2b8eb2cbc7d5f4eb491e439dc2dd5c671adb44d6fdd3e55f56f51ad3a0e0cb8635806bfe04b54
7
- data.tar.gz: dd2d9e075827b24af100ee179ac58022bd43553e6ec3241980650afc5266f5d9f5e4b629e01514f496b6bdc6b6ba6234d9d1074f51ed3ed3f6e5dcacd50e3e68
6
+ metadata.gz: 326079630322cca9e9219ec70d5038cb29d45f2b2032ed4a5f230d26c9f5f6bd8ac378d5b3fc3ba358dcc7cdd205db5cd10f64632e8d2e9f1192a2f559c606a5
7
+ data.tar.gz: 7a2e4062d919909b291b6562556f87f2dce6b926aa23838e56b027fd32287f2e954a45f46ebb23e2c078d5a0619d7eb774df231bb2f20168bdf8f4d4ae924526
@@ -18,6 +18,10 @@ Metrics/LineLength:
18
18
  - test/**/*
19
19
  Layout/ElseAlignment:
20
20
  Enabled: false
21
+ Metrics/CyclomaticComplexity:
22
+ Max: 10
23
+ Metrics/PerceivedComplexity:
24
+ Max: 10
21
25
  Metrics/BlockLength:
22
26
  Exclude:
23
27
  - '*.gemspec'
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tfdsl (0.1.6)
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 (10.5.0)
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 (~> 10.0)
67
+ rake (~> 13.0)
66
68
  rubocop (~> 0.63)
67
69
  simplecov (~> 0.16)
68
70
  tfdsl!
@@ -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__] = json
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
@@ -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].merge obj.to_json_repr
31
+ stack[key] = stack[key].deep_merge obj.to_json_repr
31
32
  end
32
- stack.to_json
33
+ JSON.pretty_generate(stack)
33
34
  end
34
35
  end
35
36
  end
@@ -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, nil, '-').result(binding).strip
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, nil, '-').result(binding).strip
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, nil, '-').result(binding).strip
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, nil, '-').result(binding).strip
43
+ ERB.new(template, trim_mode: '-').result(binding).strip
39
44
  end
40
45
  end
41
46
  end
@@ -1,3 +1,3 @@
1
1
  module TFDSL
2
- VERSION = '0.1.6'.freeze
2
+ VERSION = '0.1.11'.freeze
3
3
  end
@@ -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', '~> 10.0'
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.6
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-02-24 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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.0.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: []