cloudformation-tool 1.5.13 → 1.5.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f75b3fa01c1cfdf40a3122aa51178d591cd94b515dc2665e30693e2f599536a
4
- data.tar.gz: 9a40860146bc044646b8427bbb9343e10309fdc0931a8145b5e96f363431f2dd
3
+ metadata.gz: 32f485059a283b0a34a74ac687c52fe01b6d9522616cc00beb572b46e9a13e1d
4
+ data.tar.gz: 9533caf5496a471432cadfbf007dd20a6789829d353642538052bde818ed6bfe
5
5
  SHA512:
6
- metadata.gz: 7e4c95847703f3fc2cb3e07fb82884fe697e9c9568e90d43a8883613383d0e2f12f1e143354db2bc1da53fe0da8bb01aed34a8d4e9abdb7487c9682bb405ccfb
7
- data.tar.gz: d28a83a9a3a5c67fb640560e2e71fd82640b415188aa0098f3eb25fbd51f3eab06c31a4c116f3a876667fd7f549c3058da1ad9ec64840ceebe37faabf383ab02
6
+ metadata.gz: cdd70a1186411fa08ddca90d687c53ad4d5113d503fd02068e6b84e63a3080a11d4dfc9e58f6a8231a90d05ef4ddb5212ece90cae208562a4caef2d54d1eb42c
7
+ data.tar.gz: f1d758e208b657d5f8e829e4e1dd079850ec4eaa8c1a9593ed09036da9cfe91fc5447edb305d6ed68005a3eda5f2e43df37c7ed4678b03ec8cac745e321af5eb
@@ -102,25 +102,14 @@ module CloudFormationTool
102
102
  # some categories are meta-data that we can ignore from includes
103
103
  next if %w(AWSTemplateFormatVersion Description).include? category
104
104
 
105
- case category
106
- when "Parameters"
107
- (@data[category]||={}).each do |name, param|
108
- if catdata.has_key? name
109
- next if param['Default'] == catdata[name]['Default']
110
-
111
- if catdata[name].has_key?('Override') and catdata[name]['Override'] == false
112
- catdata.delete(name)
113
- else
114
- newname = "#{cfile_key}z#{name}"
115
- log "Rewriting conflicting parameter #{name} (='#{catdata[name]['Default']}') to #{newname}"
116
- catdata[newname] = catdata.delete name
117
- rewrites[name] = newname
118
- end
119
- else
120
- @data[category][name] = param
121
- end
122
- end
123
- else
105
+ if category == "Parameters"
106
+ rewriteParameters catdata, cfile_key, rewrites
107
+ @data["Parameters"].merge! catdata
108
+ next
109
+ end
110
+
111
+ case catdata
112
+ when Hash
124
113
  # warn against duplicate entities, resources or outputs
125
114
  (@data[category] ||= {}).keys.each do |key|
126
115
  if catdata.has_key? key
@@ -128,14 +117,49 @@ module CloudFormationTool
128
117
  end
129
118
  end
130
119
  catdata = fixrefs(catdata, rewrites)
120
+ # add included properties
121
+ @data[category].merge! catdata
122
+ when Array
123
+ if @data[category].nil?
124
+ @data[category] = catdata
125
+ elsif @data[category].is_a? Array
126
+ @data[category] += catdata
127
+ else
128
+ raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - conflicting types for '#{category}'"
129
+ end
130
+ else
131
+ if @data[category].nil?
132
+ @data[category] = catdata
133
+ else
134
+ raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - I do not know how to merge non-list non-dictionary '#{category}'!"
135
+ end
131
136
  end
132
137
 
133
- # add included properties
134
- @data[category].merge! catdata
135
138
  end
136
139
  end
137
140
  end
138
141
 
142
+ def rewriteParameters data, key, rewrites
143
+ (@data["Parameters"]||={}).each do |name, param|
144
+ unless data.has_key? name
145
+ @data["Parameters"][name] = param
146
+ next
147
+ end
148
+
149
+ next if param['Default'] == data[name]['Default']
150
+
151
+ if data[name].has_key?('Override') and data[name]['Override'] == false
152
+ data.delete(name)
153
+ next
154
+ end
155
+
156
+ newname = "#{key}z#{name}"
157
+ log "Rewriting conflicting parameter #{name} (='#{data[name]['Default']}') to #{newname}"
158
+ data[newname] = data.delete name
159
+ rewrites[name] = newname
160
+ end
161
+ end
162
+
139
163
  def resolveVal(value)
140
164
  case value
141
165
  when Hash
@@ -1,3 +1,3 @@
1
1
  module CloudFormationTool
2
- VERSION = '1.5.13'
2
+ VERSION = '1.5.15'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudformation-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.13
4
+ version: 1.5.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oded Arbel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-22 00:00:00.000000000 Z
11
+ date: 2023-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake