cxml-ruby 0.6.0 → 0.6.1
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/.github/workflows/ruby.yml +1 -0
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +4 -0
- data/cxml-ruby.gemspec +1 -0
- data/lib/cxml-ruby.rb +1 -1
- data/lib/cxml/document.rb +1 -0
- data/lib/cxml/document_node.rb +2 -2
- data/lib/cxml/parser.rb +7 -2
- data/lib/cxml/version.rb +1 -1
- data/spec/fixtures/item_in.xml +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +7 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 87772dd26f3194f54c29efa9a993202f79e8102f9bda767bbab87fb43579b9be
         | 
| 4 | 
            +
              data.tar.gz: 227e6acd1a26406c8eaeabdec57326e5ac85ff5a965ff11c0d24650d786c3f51
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 812724e750bb2f67a33fa0cd2acef0d03996d394574ea265f40b90c842f1b5244de9ab7ca74a7acedc38a6dbd0d96030933be52a6ef0cf7d2713328117d660bb
         | 
| 7 | 
            +
              data.tar.gz: 93d10408aaaafaa739ffa6841a83b0ecabe253247cff418684887ac8bfb3fed328e29a649e09d9e1ed043f8aa3d7adfcfbff4104156fb5e80993463d9ed147b6
         | 
    
        data/.github/workflows/ruby.yml
    CHANGED
    
    
    
        data/.rubocop.yml
    CHANGED
    
    | @@ -2,6 +2,7 @@ AllCops: | |
| 2 2 | 
             
              Exclude:
         | 
| 3 3 | 
             
                - Gemfile
         | 
| 4 4 | 
             
                - vendor/**/*
         | 
| 5 | 
            +
              NewCops: enable
         | 
| 5 6 |  | 
| 6 7 | 
             
            # # Disable checking for block length
         | 
| 7 8 | 
             
            Metrics/BlockLength:
         | 
| @@ -54,6 +55,9 @@ Style/Documentation: | |
| 54 55 | 
             
            Style/ClassAndModuleChildren:
         | 
| 55 56 | 
             
              Enabled: false
         | 
| 56 57 |  | 
| 58 | 
            +
            Style/ArrayCoercion:
         | 
| 59 | 
            +
              Enabled: false
         | 
| 60 | 
            +
             | 
| 57 61 | 
             
            Style/HashEachMethods:
         | 
| 58 62 | 
             
              Enabled: true
         | 
| 59 63 |  | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |
| 14 14 |  | 
| 15 15 | 
             
            ---
         | 
| 16 16 |  | 
| 17 | 
            +
            ## [0.6.1] - 2020-09-04
         | 
| 18 | 
            +
            ### Fixed
         | 
| 19 | 
            +
            - Handle parsing CDATA tags in cXML content (Thanks @CRiva!).
         | 
| 20 | 
            +
             | 
| 17 21 | 
             
            ## [0.6.0] - 2020-05-01
         | 
| 18 22 | 
             
            ### Fixed
         | 
| 19 23 | 
             
            - Conform to cXML DTD spec for ordered output of child nodes.
         | 
    
        data/cxml-ruby.gemspec
    CHANGED
    
    | @@ -12,6 +12,7 @@ Gem::Specification.new do |s| | |
| 12 12 | 
             
              s.authors     = ['Josh Beckman', 'Eleni Chappen']
         | 
| 13 13 | 
             
              s.email       = ['josh@officeluv.com', 'eleni@officeluv.com']
         | 
| 14 14 |  | 
| 15 | 
            +
              s.required_ruby_version = '>= 2.4'
         | 
| 15 16 | 
             
              s.add_dependency('ox', '~> 2.13')
         | 
| 16 17 |  | 
| 17 18 | 
             
              s.add_development_dependency('pry', '~> 0.12')
         | 
    
        data/lib/cxml-ruby.rb
    CHANGED
    
    
    
        data/lib/cxml/document.rb
    CHANGED
    
    
    
        data/lib/cxml/document_node.rb
    CHANGED
    
    | @@ -108,7 +108,7 @@ module CXML | |
| 108 108 | 
             
                    string_attr = if attr.to_sym == :xml_lang
         | 
| 109 109 | 
             
                                    'xml:lang'
         | 
| 110 110 | 
             
                                  else
         | 
| 111 | 
            -
                                    camelize(attr, false)
         | 
| 111 | 
            +
                                    camelize(attr, uppercase_first_letter: false)
         | 
| 112 112 | 
             
                                  end
         | 
| 113 113 | 
             
                    obj[string_attr] = value
         | 
| 114 114 | 
             
                  end
         | 
| @@ -138,7 +138,7 @@ module CXML | |
| 138 138 | 
             
                  end
         | 
| 139 139 | 
             
                end
         | 
| 140 140 |  | 
| 141 | 
            -
                def camelize(string, uppercase_first_letter  | 
| 141 | 
            +
                def camelize(string, uppercase_first_letter: true)
         | 
| 142 142 | 
             
                  string = if uppercase_first_letter
         | 
| 143 143 | 
             
                             string.to_s.sub(/^[a-z\d]*/, &:capitalize)
         | 
| 144 144 | 
             
                           else
         | 
    
        data/lib/cxml/parser.rb
    CHANGED
    
    | @@ -44,17 +44,22 @@ module CXML | |
| 44 44 |  | 
| 45 45 | 
             
                private
         | 
| 46 46 |  | 
| 47 | 
            -
                def node_to_hash(node) | 
| 47 | 
            +
                def node_to_hash(node)
         | 
| 48 | 
            +
                  return node.value if node.is_a?(Ox::CData)
         | 
| 48 49 | 
             
                  return node if node.is_a? String
         | 
| 49 50 | 
             
                  return node.nodes.first if node.nodes.all?(String) && node.attributes.empty?
         | 
| 50 51 |  | 
| 52 | 
            +
                  transform_node_to_hash node
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                def transform_node_to_hash(node)
         | 
| 51 56 | 
             
                  hash = node.attributes
         | 
| 52 57 | 
             
                  hash.transform_keys!(&method(:underscore_key))
         | 
| 53 58 | 
             
                  node.nodes.reduce(hash) do |acc, child_node|
         | 
| 54 59 | 
             
                    next acc if child_node.is_a?(Ox::Comment)
         | 
| 55 60 |  | 
| 56 61 | 
             
                    node_hash = {}
         | 
| 57 | 
            -
                    name = child_node.is_a?(String) ? :content : child_node.value
         | 
| 62 | 
            +
                    name = child_node.is_a?(String) || child_node.is_a?(Ox::CData) ? :content : child_node.value
         | 
| 58 63 | 
             
                    node_hash[underscore_key(name)] = node_to_hash(child_node)
         | 
| 59 64 | 
             
                    acc.merge(node_hash) do |_key, val1, val2|
         | 
| 60 65 | 
             
                      [val1, val2].flatten
         | 
    
        data/lib/cxml/version.rb
    CHANGED
    
    
    
        data/spec/fixtures/item_in.xml
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
                <SupplierPartAuxiliaryID>lkajsdflsdf</SupplierPartAuxiliaryID>
         | 
| 5 5 | 
             
              </ItemID>
         | 
| 6 6 | 
             
              <ItemDetail>
         | 
| 7 | 
            -
                <Description xml:lang="en" | 
| 7 | 
            +
                <Description xml:lang="en"><![CDATA[AGENDA MAGAZINE RACK A4 CHARCOAL 25990]]></Description>
         | 
| 8 8 | 
             
                <UnitOfMeasure>EA</UnitOfMeasure>
         | 
| 9 9 | 
             
                <UnitPrice> <Money currency="GBP">5.35</Money> </UnitPrice>
         | 
| 10 10 | 
             
                <Classification domain="UNSPSC">44000000</Classification>
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -25,7 +25,7 @@ def dtd_path_from_url(url) | |
| 25 25 | 
             
              return 'spec/fixtures/1.2.037-cXML.dtd' unless url
         | 
| 26 26 |  | 
| 27 27 | 
             
              match = url.match(%r{/(\d+\.\d+\.\d+)/(\w+\.dtd)}).to_a
         | 
| 28 | 
            -
              file =  | 
| 28 | 
            +
              file = "spec/fixtures/#{match.last(2).join('-')}"
         | 
| 29 29 | 
             
              return file if File.exist?(file)
         | 
| 30 30 |  | 
| 31 31 | 
             
              system("curl #{url} -O && mv #{match.last} #{file}")
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cxml-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Josh Beckman
         | 
| 8 8 | 
             
            - Eleni Chappen
         | 
| 9 | 
            -
            autorequire: | 
| 9 | 
            +
            autorequire:
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2020- | 
| 12 | 
            +
            date: 2020-09-04 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: ox
         | 
| @@ -250,7 +250,7 @@ homepage: https://github.com/officeluv/cxml-ruby | |
| 250 250 | 
             
            licenses:
         | 
| 251 251 | 
             
            - MIT
         | 
| 252 252 | 
             
            metadata: {}
         | 
| 253 | 
            -
            post_install_message: | 
| 253 | 
            +
            post_install_message:
         | 
| 254 254 | 
             
            rdoc_options: []
         | 
| 255 255 | 
             
            require_paths:
         | 
| 256 256 | 
             
            - lib
         | 
| @@ -258,15 +258,15 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 258 258 | 
             
              requirements:
         | 
| 259 259 | 
             
              - - ">="
         | 
| 260 260 | 
             
                - !ruby/object:Gem::Version
         | 
| 261 | 
            -
                  version: ' | 
| 261 | 
            +
                  version: '2.4'
         | 
| 262 262 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 263 263 | 
             
              requirements:
         | 
| 264 264 | 
             
              - - ">="
         | 
| 265 265 | 
             
                - !ruby/object:Gem::Version
         | 
| 266 266 | 
             
                  version: '0'
         | 
| 267 267 | 
             
            requirements: []
         | 
| 268 | 
            -
            rubygems_version: 3. | 
| 269 | 
            -
            signing_key: | 
| 268 | 
            +
            rubygems_version: 3.1.2
         | 
| 269 | 
            +
            signing_key:
         | 
| 270 270 | 
             
            specification_version: 4
         | 
| 271 271 | 
             
            summary: Parse/generate documents with the cXML protocol
         | 
| 272 272 | 
             
            test_files:
         |