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
         |