cloudformation-tool 1.5.14 → 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: a9db3672b97a22828e57d6c906a78831153a620bca1632f9f9748f72e27c9db7
4
- data.tar.gz: ad0eca7cc6ae46eaf3b0a55c57fd8e85695a27b8c97f71e55492e0a95bd208d2
3
+ metadata.gz: 32f485059a283b0a34a74ac687c52fe01b6d9522616cc00beb572b46e9a13e1d
4
+ data.tar.gz: 9533caf5496a471432cadfbf007dd20a6789829d353642538052bde818ed6bfe
5
5
  SHA512:
6
- metadata.gz: 0452d98f9e5426f6924cc8caf53430b8936fc9ac38187abda7ff9d780cf921330f0f85b592cab7be9b26918e3f54585892e61548e747721dfc46973ec64e04aa
7
- data.tar.gz: 6d50f5dd121f968799fd5754a6f54726cd0c64925ce9bd79a27f4360ee710c65a914fc36f3d740536664c4ffc1c1a03b5f055c21848deb2e976900c3f2060dc1
6
+ metadata.gz: cdd70a1186411fa08ddca90d687c53ad4d5113d503fd02068e6b84e63a3080a11d4dfc9e58f6a8231a90d05ef4ddb5212ece90cae208562a4caef2d54d1eb42c
7
+ data.tar.gz: f1d758e208b657d5f8e829e4e1dd079850ec4eaa8c1a9593ed09036da9cfe91fc5447edb305d6ed68005a3eda5f2e43df37c7ed4678b03ec8cac745e321af5eb
@@ -102,50 +102,36 @@ 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
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
113
+ # warn against duplicate entities, resources or outputs
114
+ (@data[category] ||= {}).keys.each do |key|
115
+ if catdata.has_key? key
116
+ raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - duplicate '#{category}' item: #{key}"
117
+ end
118
+ end
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}'"
122
129
  end
123
130
  else
124
- case catdata
125
- when Hash
126
- # warn against duplicate entities, resources or outputs
127
- (@data[category] ||= {}).keys.each do |key|
128
- if catdata.has_key? key
129
- raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - duplicate '#{category}' item: #{key}"
130
- end
131
- end
132
- catdata = fixrefs(catdata, rewrites)
133
- # add included properties
134
- @data[category].merge! catdata
135
- when Array
136
- if @data[category].nil?
137
- @data[category] = catdata
138
- elsif @data[category].is_a? Array
139
- @data[category] += catdata
140
- else
141
- raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - conflicting types for '#{category}'"
142
- end
131
+ if @data[category].nil?
132
+ @data[category] = catdata
143
133
  else
144
- if @data[category].nil?
145
- @data[category] = catdata
146
- else
147
- raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - I do not know how to merge non-list non-dictionary '#{category}'!"
148
- end
134
+ raise CloudFormationTool::Errors::AppError, "Error compiling #{path} - I do not know how to merge non-list non-dictionary '#{category}'!"
149
135
  end
150
136
  end
151
137
 
@@ -153,6 +139,27 @@ module CloudFormationTool
153
139
  end
154
140
  end
155
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
+
156
163
  def resolveVal(value)
157
164
  case value
158
165
  when Hash
@@ -1,3 +1,3 @@
1
1
  module CloudFormationTool
2
- VERSION = '1.5.14'
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.14
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-09-10 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