cfn-model 0.4.8 → 0.4.9
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 +4 -4
- data/lib/cfn-model/parser/cfn_parser.rb +28 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddb403868e5c1cd8891f12598a4434986dc4d21a0073da942ac0b92f33599179
|
4
|
+
data.tar.gz: 535b2ceba004340b7aac1390dddc7664b732a247ee8eda3d66cfaabe17f84770
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a4ec3560981190103c77af50128e9f54eee8360fb989203608028c9e5eb9ae56b192d3302f29466ac63884fa8a9b52802531b4310ca908eb0a4fa7a17eec02c
|
7
|
+
data.tar.gz: 16114fa99ff6491b7b247721e5119f5d997ea01b14f8951d074a95551a1999d70aa4941cbcd145be681847777251469a29aec39f46ec3dc697e72e4d0f900b0e
|
@@ -198,18 +198,32 @@ class CfnParser
|
|
198
198
|
(str.slice(0).downcase + str[1..(str.length)]).gsub /-/, '_'
|
199
199
|
end
|
200
200
|
|
201
|
+
##
|
202
|
+
# strip any characters that are legal in a resource name that
|
203
|
+
# are going to make for a legal character in a ruby class name
|
204
|
+
def clean_module_name(module_name)
|
205
|
+
module_name.gsub /[\-@]/, ''
|
206
|
+
end
|
207
|
+
|
208
|
+
def map_non_aws_resource_name_to_class_name(module_names)
|
209
|
+
# this is a little hacky. we've been ignoring Custom so more for
|
210
|
+
# backward compat. for Alexa and other transformed resources just jam the whole
|
211
|
+
# thing together
|
212
|
+
if module_names.first == 'Custom'
|
213
|
+
first_module_index = 1
|
214
|
+
else
|
215
|
+
first_module_index = 0
|
216
|
+
end
|
217
|
+
module_names[first_module_index..-1].reduce('') do |class_name, module_name|
|
218
|
+
class_name + initial_upper(clean_module_name(module_name))
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
201
222
|
def generate_resource_class_from_type(type_name)
|
202
223
|
resource_class = Class.new(ModelElement)
|
203
224
|
|
204
225
|
module_names = type_name.split('::')
|
205
|
-
if module_names.first == '
|
206
|
-
custom_resource_class_name = initial_upper(module_names[1])
|
207
|
-
begin
|
208
|
-
resource_class = Object.const_get custom_resource_class_name
|
209
|
-
rescue NameError
|
210
|
-
Object.const_set(custom_resource_class_name, resource_class)
|
211
|
-
end
|
212
|
-
elsif module_names.first == 'AWS'
|
226
|
+
if module_names.first == 'AWS'
|
213
227
|
begin
|
214
228
|
module_constant = AWS.const_get(module_names[1])
|
215
229
|
rescue NameError
|
@@ -218,7 +232,12 @@ class CfnParser
|
|
218
232
|
end
|
219
233
|
module_constant.const_set(module_names[2], resource_class)
|
220
234
|
else
|
221
|
-
|
235
|
+
custom_resource_class_name = map_non_aws_resource_name_to_class_name(module_names)
|
236
|
+
begin
|
237
|
+
resource_class = Object.const_get custom_resource_class_name
|
238
|
+
rescue NameError
|
239
|
+
Object.const_set(custom_resource_class_name, resource_class)
|
240
|
+
end
|
222
241
|
end
|
223
242
|
resource_class
|
224
243
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfn-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kascic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|