rexslt 0.6.7 → 0.6.8
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +4 -1
- data/lib/rexslt.rb +30 -14
- metadata +27 -27
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f3b4e51d09e5a32477d0cbd84750233fb11efd6c
         | 
| 4 | 
            +
              data.tar.gz: 15664915741e3124b9350d4ed21532d83939b0f1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0e0911d84d2694bbc7f3d6552a8cc8e9ac4620eefd6325166ada84c7aa16a2ecf52a466e0b23359ddc9230b666fb70c403f32f55362f310fa84e63d68431eff0
         | 
| 7 | 
            +
              data.tar.gz: '0738ec497ce3ac97486c89affe40716a10b790cdfa3265aee6614dc0d8e5d3c4d9e4fea8ba86cb7f7ab23fd94956364d686d42a04aa118cec0674a9ebab7082e'
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    
    
        data/lib/rexslt.rb
    CHANGED
    
    | @@ -8,6 +8,7 @@ require 'rxfhelper' | |
| 8 8 |  | 
| 9 9 | 
             
            # modifications:
         | 
| 10 10 |  | 
| 11 | 
            +
            # 15-Sep-2017: feature: Implemented xsl_call_template
         | 
| 11 12 | 
             
            # 21-May-2016: bug fix: An update to the Rexle gem regarding the new 
         | 
| 12 13 | 
             
            #              Rexle::Element::Attribute datatype caused the sort_by code 
         | 
| 13 14 | 
             
            #              to break. This has now been rectified.
         | 
| @@ -59,12 +60,16 @@ class Rexslt | |
| 59 60 |  | 
| 60 61 | 
             
                ## debugging variables
         | 
| 61 62 |  | 
| 63 | 
            +
                @log = Logger.new 'rxsl.log','daily'
         | 
| 62 64 | 
             
                @rn = 0
         | 
| 63 65 | 
             
                @rre = 0
         | 
| 64 66 |  | 
| 65 67 | 
             
                super()
         | 
| 68 | 
            +
                @log.debug 'before options'
         | 
| 66 69 | 
             
                @options = {}
         | 
| 67 70 | 
             
                custom_params = params.inject({}){|r,x| r.merge(Hash[x[0].to_s,x[1]])}    
         | 
| 71 | 
            +
                @log.debug 'before xsl_transform'
         | 
| 72 | 
            +
             | 
| 68 73 | 
             
                xslt_transform(*[xsl, xml].map{|x| RXFHelper.read(x).first}, custom_params)
         | 
| 69 74 | 
             
              end
         | 
| 70 75 |  | 
| @@ -117,7 +122,7 @@ class Rexslt | |
| 117 122 | 
             
                end
         | 
| 118 123 |  | 
| 119 124 | 
             
                raw_template = @templates.to_a.find do |raw_item, template|
         | 
| 120 | 
            -
             | 
| 125 | 
            +
                  next unless raw_item
         | 
| 121 126 | 
             
                  item = raw_item.split('/')
         | 
| 122 127 |  | 
| 123 128 | 
             
                  if match? keypath, item then
         | 
| @@ -197,16 +202,26 @@ class Rexslt | |
| 197 202 |  | 
| 198 203 | 
             
                doc_element.add_attribute(name, value)
         | 
| 199 204 | 
             
              end
         | 
| 205 | 
            +
              
         | 
| 206 | 
            +
              def xsl_call_template(element, x, doc_element, indent, i)
         | 
| 207 | 
            +
                
         | 
| 208 | 
            +
                name = x.attributes[:name]
         | 
| 209 | 
            +
                template = @doc_xsl.root.element("xsl:template[@name='#{name}']")
         | 
| 210 | 
            +
                
         | 
| 211 | 
            +
                read_node template, element, doc_element, indent, i
         | 
| 212 | 
            +
              end
         | 
| 200 213 |  | 
| 201 214 | 
             
              def xsl_choose(element, x, doc_element, indent, i)
         | 
| 202 215 |  | 
| 216 | 
            +
             | 
| 203 217 | 
             
                r = x.xpath("xsl:when").map do |xsl_node|
         | 
| 204 218 |  | 
| 205 219 | 
             
                  condition = xsl_node.attributes[:test]
         | 
| 220 | 
            +
             | 
| 206 221 | 
             
                  node = element.element condition
         | 
| 207 | 
            -
             | 
| 222 | 
            +
             | 
| 208 223 | 
             
                  if node  
         | 
| 209 | 
            -
                     | 
| 224 | 
            +
                    read_raw_element(element, xsl_node.elements.first,  doc_element, indent, i)      
         | 
| 210 225 | 
             
                    true
         | 
| 211 226 | 
             
                  else
         | 
| 212 227 | 
             
                    false
         | 
| @@ -234,7 +249,7 @@ class Rexslt | |
| 234 249 | 
             
              end
         | 
| 235 250 |  | 
| 236 251 | 
             
              def xsl_element(element, x, doc_element, indent, i)
         | 
| 237 | 
            -
             | 
| 252 | 
            +
                
         | 
| 238 253 | 
             
                indent_before(element, x, doc_element, indent + 1, i) if @indent == true
         | 
| 239 254 |  | 
| 240 255 | 
             
                name = x.attributes[:name]
         | 
| @@ -355,7 +370,7 @@ class Rexslt | |
| 355 370 | 
             
              # doc_element: target document element
         | 
| 356 371 | 
             
              #
         | 
| 357 372 | 
             
              def read_node(template_node, element, doc_element, indent, i=0)
         | 
| 358 | 
            -
             | 
| 373 | 
            +
                
         | 
| 359 374 | 
             
                template_node.children.each_with_index do |x,j|
         | 
| 360 375 |  | 
| 361 376 | 
             
                  name = if x.kind_of? Rexle::Element then :read_raw_element
         | 
| @@ -392,9 +407,9 @@ class Rexslt | |
| 392 407 | 
             
              def read_raw_element(element, x, doc_element, indent, j)
         | 
| 393 408 |  | 
| 394 409 | 
             
                method_name = x.name.gsub(/[:-]/,'_').to_sym    
         | 
| 395 | 
            -
             | 
| 410 | 
            +
                
         | 
| 396 411 | 
             
                if @xsl_methods.include? method_name then
         | 
| 397 | 
            -
             | 
| 412 | 
            +
                    
         | 
| 398 413 | 
             
                  if method_name == :'xsl_apply_templates' then
         | 
| 399 414 | 
             
                    #doc_element = doc_element.elements.last
         | 
| 400 415 | 
             
                  end
         | 
| @@ -502,19 +517,22 @@ class Rexslt | |
| 502 517 |  | 
| 503 518 | 
             
              def xslt_transform(raw_xsl, xml, custom_params={})
         | 
| 504 519 |  | 
| 520 | 
            +
                @log.debug 'inside xslt_transform'
         | 
| 521 | 
            +
             | 
| 505 522 | 
             
                doc_xml = xml.is_a?(Rexle) ? xml : Rexle.new(xml)
         | 
| 506 | 
            -
             | 
| 523 | 
            +
             | 
| 507 524 | 
             
                @doc_xsl = raw_xsl.is_a?(Rexle) ? raw_xsl : Rexle.new(raw_xsl)
         | 
| 508 | 
            -
                
         | 
| 525 | 
            +
                @log.debug 'after @doc_xsl'
         | 
| 509 526 |  | 
| 510 527 | 
             
                #jr2040516 filter_out_spaces @doc_xsl.root
         | 
| 511 528 |  | 
| 512 529 | 
             
                @doc = Rexle.new '<root></root>'
         | 
| 530 | 
            +
             | 
| 513 531 | 
             
                indent = 0
         | 
| 514 532 |  | 
| 515 533 | 
             
                previous_indent = 0
         | 
| 516 534 | 
             
                @xsl_methods = %i(apply_templates value_of element if choose when copy_of
         | 
| 517 | 
            -
                                  attribute for_each text output).map do |x| 
         | 
| 535 | 
            +
                                  attribute for_each text output call_template).map do |x| 
         | 
| 518 536 | 
             
                                    ('xsl_' + x.to_s).to_sym
         | 
| 519 537 | 
             
                                  end
         | 
| 520 538 |  | 
| @@ -530,6 +548,7 @@ class Rexslt | |
| 530 548 | 
             
                end
         | 
| 531 549 |  | 
| 532 550 | 
             
                h = @doc_xsl.root.element("xsl:output/attribute::*")
         | 
| 551 | 
            +
                @log.debug 'after h'
         | 
| 533 552 |  | 
| 534 553 | 
             
                if  h and ((h[:method] and h[:method].downcase == 'html') \
         | 
| 535 554 | 
             
                                               or h[:'omit-xml-declaration'] == 'yes') then
         | 
| @@ -586,10 +605,7 @@ class Rexslt | |
| 586 605 |  | 
| 587 606 | 
             
                  end
         | 
| 588 607 | 
             
                end    
         | 
| 589 | 
            -
             | 
| 590 | 
            -
                
         | 
| 591 | 
            -
             | 
| 592 | 
            -
             | 
| 608 | 
            +
                    
         | 
| 593 609 | 
             
                out
         | 
| 594 610 |  | 
| 595 611 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rexslt
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - James Robertson
         | 
| @@ -12,26 +12,26 @@ cert_chain: | |
| 12 12 | 
             
              -----BEGIN CERTIFICATE-----
         | 
| 13 13 | 
             
              MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
         | 
| 14 14 | 
             
              YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
         | 
| 15 | 
            -
               | 
| 15 | 
            +
              8ixkARkWAmV1MB4XDTE3MDkxNTIwMjQwM1oXDTE4MDkxNTIwMjQwM1owSDESMBAG
         | 
| 16 16 | 
             
              A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
         | 
| 17 17 | 
             
              EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
         | 
| 18 | 
            -
               | 
| 19 | 
            -
               | 
| 20 | 
            -
               | 
| 21 | 
            -
               | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 24 | 
            -
               | 
| 18 | 
            +
              ggEBAMlR9HT3XszqknU82ijbs8uTs91F9jkc+2oXFCmTDwx7K6RIsUYs4J5p2hnw
         | 
| 19 | 
            +
              Rg3JMpgbCnlz2/bOenXHYq2+MYw5jql68lorwqAvPOSqgnmgolid5EuNNyGqlDHB
         | 
| 20 | 
            +
              Mkp79B2ZhNO8Gz77ruYgCKVkGCrwO2Njc8iGGnEiRUAntRna1YcFNYKOU1hllqDI
         | 
| 21 | 
            +
              oKn0efB/YTgzqhhpYxK9sEpWfjFoO9trfj+r9BU/BAHWVDR5vxdSiqFIkbnKW65a
         | 
| 22 | 
            +
              nC28KtMVI7KkUPbN8tgsm8B9Id6POHUUGjiBHr1P/zktOcyrOAnzAi9lLlS9hnkt
         | 
| 23 | 
            +
              6Ktj0NDtQrAcaJOpS63qJmBuYPkCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
         | 
| 24 | 
            +
              DwQEAwIEsDAdBgNVHQ4EFgQUFDszzDA8NNNCoYI2FKOrIiIp87YwJgYDVR0RBB8w
         | 
| 25 25 | 
             
              HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
         | 
| 26 | 
            -
               | 
| 27 | 
            -
               | 
| 28 | 
            -
               | 
| 29 | 
            -
               | 
| 30 | 
            -
               | 
| 31 | 
            -
               | 
| 32 | 
            -
               | 
| 26 | 
            +
              c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAhp3O3yYu
         | 
| 27 | 
            +
              +96s1H5S297WguKDGrNKJoa44o+6IU4JefUxkmfidtaSwcPnnCaAsoLXzBLpnwlY
         | 
| 28 | 
            +
              m6LH1jPWHqnJlUHjtkjr/wp620cWGKcwFw8VlfqdNALV9tALCHje5J+NITR2U9P6
         | 
| 29 | 
            +
              Q6tcZFPZmUCr8SvlQlqGJY1BY/e9iajntzL0j6QvBZLzaQbej1DY5Dbv3e2ipOZq
         | 
| 30 | 
            +
              gQdsDg5v3CppCdi6o+CG+Q+K2P6w4EBdWKHn9FhYUMp4oDiBznW7D+dpEraoyER7
         | 
| 31 | 
            +
              f4Fi5ORmK9ccbijkIGmH2JdFYi07Fax/6a8TgcpbSrICHncFAvvPo8hxuUR+aHvg
         | 
| 32 | 
            +
              wux0hu0gdmk8nA==
         | 
| 33 33 | 
             
              -----END CERTIFICATE-----
         | 
| 34 | 
            -
            date:  | 
| 34 | 
            +
            date: 2017-09-15 00:00:00.000000000 Z
         | 
| 35 35 | 
             
            dependencies:
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: rxfhelper
         | 
| @@ -39,42 +39,42 @@ dependencies: | |
| 39 39 | 
             
                requirements:
         | 
| 40 40 | 
             
                - - "~>"
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            -
                    version: '0. | 
| 42 | 
            +
                    version: '0.4'
         | 
| 43 43 | 
             
                - - ">="
         | 
| 44 44 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            -
                    version: 0. | 
| 45 | 
            +
                    version: 0.4.2
         | 
| 46 46 | 
             
              type: :runtime
         | 
| 47 47 | 
             
              prerelease: false
         | 
| 48 48 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 49 49 | 
             
                requirements:
         | 
| 50 50 | 
             
                - - "~>"
         | 
| 51 51 | 
             
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            -
                    version: '0. | 
| 52 | 
            +
                    version: '0.4'
         | 
| 53 53 | 
             
                - - ">="
         | 
| 54 54 | 
             
                  - !ruby/object:Gem::Version
         | 
| 55 | 
            -
                    version: 0. | 
| 55 | 
            +
                    version: 0.4.2
         | 
| 56 56 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 57 57 | 
             
              name: rexle
         | 
| 58 58 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 59 59 | 
             
                requirements:
         | 
| 60 60 | 
             
                - - "~>"
         | 
| 61 61 | 
             
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            -
                    version: '1. | 
| 62 | 
            +
                    version: '1.4'
         | 
| 63 63 | 
             
                - - ">="
         | 
| 64 64 | 
             
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            -
                    version: 1. | 
| 65 | 
            +
                    version: 1.4.9
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 68 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 69 | 
             
                requirements:
         | 
| 70 70 | 
             
                - - "~>"
         | 
| 71 71 | 
             
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            -
                    version: '1. | 
| 72 | 
            +
                    version: '1.4'
         | 
| 73 73 | 
             
                - - ">="
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: 1. | 
| 75 | 
            +
                    version: 1.4.9
         | 
| 76 76 | 
             
            description: 
         | 
| 77 | 
            -
            email: james@ | 
| 77 | 
            +
            email: james@jamesrobertson.eu
         | 
| 78 78 | 
             
            executables: []
         | 
| 79 79 | 
             
            extensions: []
         | 
| 80 80 | 
             
            extra_rdoc_files: []
         | 
| @@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 100 100 | 
             
                  version: '0'
         | 
| 101 101 | 
             
            requirements: []
         | 
| 102 102 | 
             
            rubyforge_project: 
         | 
| 103 | 
            -
            rubygems_version: 2. | 
| 103 | 
            +
            rubygems_version: 2.6.8
         | 
| 104 104 | 
             
            signing_key: 
         | 
| 105 105 | 
             
            specification_version: 4
         | 
| 106 106 | 
             
            summary: Rexslt is an XSLT processor written purely in Ruby
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |