terraform-synthesizer 0.0.15 → 0.0.17

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: a1ef503dbcd7c796cda35e508798623fe1ba26202138df278dc56df6ffcc305a
4
- data.tar.gz: 64b3bbb65508243e2294eb11ab67474e7741c3e2023ef56a64a36fd06a4cb6d9
3
+ metadata.gz: c7f3d2d5097f859aca6b9b54eb06dd39b18e56413619087f8a63c022886dbe88
4
+ data.tar.gz: 636f94e4fa483d77ef9acfbc69a208b8aa939fa99b8a5f5184acc9f49e3805e0
5
5
  SHA512:
6
- metadata.gz: 4542a100e11a81e55128c86b28849e0b106a38e33bc44a166c965be43290c7e4b27fd4d45985899b603639a708a22e06d82683912052daab3df299b3583a5bad
7
- data.tar.gz: 2458e557e8e0ea60ec7782e4ab027ebe32fb8d8b16f08c8de53b7c35b357dfb952ce39501f96ce5cea3fb317e76639ac0c8a3f2b14c5a80e2ac811f1deed3550
6
+ metadata.gz: 59a0ccde1b6a9cf07603846f6eed12733d553082df504cb3967ac8843ff5b2a3bd5a5e789283e7403c7ec3e740910310c4421ad6aa8bc3597ab6bc33da49acd8
7
+ data.tar.gz: beec70098377f90991a3a11824de7c73876efe3d9f82e048102689a68ea94eb5502bbbb92f9ab62c226d04bba4ed618ba74803860dbd835468cf77ca9ba36c7e
@@ -1,3 +1,3 @@
1
1
  module TerraformSynthesizer
2
- VERSION = %(0.0.15).freeze
2
+ VERSION = %(0.0.17).freeze
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require %(abstract-synthesizer)
2
2
 
3
3
  class TerraformSynthesizer < AbstractSynthesizer
4
- KEYS = %i[
4
+ RESOURCE_KEYS = %i[
5
5
  terraform
6
6
  resource
7
7
  variable
@@ -9,28 +9,50 @@ class TerraformSynthesizer < AbstractSynthesizer
9
9
  data
10
10
  ].freeze
11
11
 
12
+ # if there are additional block keys
13
+ # add them here and they should be processed
14
+ # accordingly
15
+ BLOCK_KEYS = %i[locals].freeze
16
+
17
+ ##############################################################################
18
+ # notes:
19
+ #
20
+ # locals are processed as a direct block like
21
+ # locals do
22
+ # key value
23
+ # end
24
+ # while resources are processed as resource like blocks
25
+ # resource :aws_vpc, :virtual_name do
26
+ # key value
27
+ # end
28
+ ##############################################################################
12
29
  def method_missing(method_name, *args, &)
13
- if @in_locals
14
- if args[0].nil?
15
- raise ArgumentError,
16
- %(not assigning anything to this local #{method_name})
17
- end
30
+ BLOCK_KEYS.each do |block_key|
31
+ if @in_block_key
32
+ raise ArgumentError, %(not assigning anything to this #{block_key}) if args[0].nil? || args[0].empty?
33
+
34
+ @in_block_key = false
35
+ @translation[:template][block_key.to_sym][method_name.to_sym] = args[0]
18
36
 
19
- @in_locals = false
20
- @translation[:template][:locals][method_name.to_sym] = args[0]
21
- elsif method_name.to_s.eql?(%(locals))
22
- @translation = {} if @translation.nil?
23
- @translation[:template] = {} if @translation[:template].nil?
24
- @translation[:template][:locals] = {} if @translation[:template][:locals].nil?
25
- @in_locals = true
26
- yield
27
- else
28
- abstract_method_missing(
29
- method_name.to_sym,
30
- KEYS,
31
- *args,
32
- &
33
- )
37
+ elsif method_name.to_s.eql?(block_key.to_s)
38
+
39
+ @translation = {} if @translation.nil?
40
+ @translation[:template] = {} if @translation[:template].nil?
41
+ if @translation[:template][block_key.to_sym].nil?
42
+ @translation[:template][block_key.to_sym] =
43
+ {}
44
+ end
45
+ @in_block_key = true
46
+
47
+ yield
48
+ else
49
+ abstract_method_missing(
50
+ method_name.to_sym,
51
+ RESOURCE_KEYS,
52
+ *args,
53
+ &
54
+ )
55
+ end
34
56
  end
35
57
  end
36
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terraform-synthesizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - drzthslnt@gmail.com