cloudformation-tool 1.5.13 → 1.5.15

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: 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