terraform-synthesizer 0.0.14 → 0.0.16

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: 4ae352c7137c9388494ab26b185c101e9585ad7cf81a81d9bf25bb60cfdde1a8
4
- data.tar.gz: 80bc796df5ecfea9196ac85194534446b6267248d0eda75a0a29ba3700d281d9
3
+ metadata.gz: 7e742e74bfa241477d03973992c8791cf8ffe68930b58b4eed82598c084a4e57
4
+ data.tar.gz: d26630d09fc22a704a3935403c83f71e7e420921a329bcd8a623e599ffc8c57b
5
5
  SHA512:
6
- metadata.gz: 7766a3684c46cb4e1097ceda10aec5b08be0a4f53e0993da529b8e12f0dcc071c3e615a50a57b601da3bcf506836e8694e3df5e7714ce051af6388bee320e424
7
- data.tar.gz: 2429144009e8706d359df67517fad846a69837a002db61fc08205a966f01a8a8412d22a0317d209ae71acfb3b291e8b3a2ce42a536707263a2a4508800cb3495
6
+ metadata.gz: c6cf1088cada6405cc839674f0e0a29e6d917359a3e022a79ca65f049e47633d843d3dba6e297b3e66864bdd2827fec3a5a8d1756cb7c906ff629f97bdf0900f
7
+ data.tar.gz: 58c0632dbce69a7cd498b6fc49ab305997bf750ab02defe56aee9fd65d690da81ee441025251591cc0fa09a364507959bfdcaff108e083becd682578689f87b7
@@ -1,3 +1,3 @@
1
1
  module TerraformSynthesizer
2
- VERSION = %(0.0.14).freeze
2
+ VERSION = %(0.0.16).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,38 +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
- puts %(processing local variable #{method_name})
15
- puts %(processing local variable value #{args[0]})
16
- if args[0].nil?
17
- raise ArgumentError,
18
- %(not assigning anything to this local #{method_name})
19
- 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?
33
+
34
+ @in_block_key = false
35
+ @translation[:template][block_key.to_sym][method_name.to_sym] = args[0]
20
36
 
21
- @in_locals = false
22
- @translation[:template][:locals].merge!(
23
- { method_name.to_sym => args[0] }
24
- )
25
- elsif method_name.to_s.eql?(%(locals))
26
- puts %(caught local execution start)
37
+ elsif method_name.to_s.eql?(block_key.to_s)
27
38
 
28
- @translation = {} if @translation.nil?
29
- puts @translation
30
- @translation[:template] = {} if @translation[:template].nil?
31
- puts @translation
32
- @translation[:template][:locals] = {} if @translation[:template][:locals].nil?
33
- puts @translation
34
- @in_locals = true
35
- puts @translation
36
- yield
37
- else
38
- abstract_method_missing(
39
- method_name.to_sym,
40
- KEYS,
41
- *args,
42
- &
43
- )
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
44
56
  end
45
57
  end
46
58
  end
@@ -36,10 +36,13 @@ describe TerraformSynthesizer do
36
36
  expect(synth.synthesis[:locals][:special_var]).to be_kind_of(String)
37
37
  end
38
38
 
39
- it %(should contain resources) do
39
+ it %(should contain resource thing) do
40
40
  synth.synthesize do
41
41
  resource :aws_vpc, :thing do
42
42
  cidr_block %(10.0.0.0/16)
43
+ stuff do
44
+ other_stuff %(whoa)
45
+ end
43
46
  end
44
47
  locals do
45
48
  special_var %(special_value)
@@ -50,5 +53,20 @@ describe TerraformSynthesizer do
50
53
  end
51
54
  expect(synth.synthesis[:resource][:aws_vpc][:thing]).to be_kind_of(Hash)
52
55
  end
56
+
57
+ it %(should contain resource thang) do
58
+ synth.synthesize do
59
+ resource :aws_vpc, :thing do
60
+ cidr_block %(10.0.0.0/16)
61
+ end
62
+ locals do
63
+ special_var %(special_value)
64
+ end
65
+ resource :aws_vpc, :thang do
66
+ cidr_block %(10.0.0.0/16)
67
+ end
68
+ end
69
+ expect(synth.synthesis[:resource][:aws_vpc][:thang]).to be_kind_of(Hash)
70
+ end
53
71
  end
54
72
  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.14
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - drzthslnt@gmail.com