dataisland 0.1.16 → 0.3.0
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/dataisland.rb +20 -20
- metadata +38 -33
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: fd6c555d5c2b7971085a70e00281d034d1eae5e24a5daff8ec7116cfe566fbd3
         | 
| 4 | 
            +
              data.tar.gz: 4e23210e6d4c36f7889d1e953238574783f1fbb84a78fc807b7be28790029e4d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4fc434a4294ae47b4e767ce8f18de6835e0e15b963312d58b12d395e0f4a468f9c1574268874c3f4ba6b30269e35f3d8098046e71eee43b11b2ef10beb90f9a1
         | 
| 7 | 
            +
              data.tar.gz: 179cff1798e76fc2a5a8a6af21aba7fe7d4e95f805833c1a1b26a96c0ea3ce49d4068d831ddba485d0f751f655a060d79e44755f507c12bb6b19d44f303cfde0
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/dataisland.rb
    CHANGED
    
    | @@ -12,8 +12,8 @@ class DataIsland | |
| 12 12 |  | 
| 13 13 | 
             
              # e.g. url = 'http://www.jamesrobertson.eu/index-template.html'
         | 
| 14 14 | 
             
              #
         | 
| 15 | 
            -
              def initialize(location)
         | 
| 16 | 
            -
             | 
| 15 | 
            +
              def initialize(location, opts={})
         | 
| 16 | 
            +
                
         | 
| 17 17 | 
             
                buffer, typex = RXFHelper.read(location)
         | 
| 18 18 | 
             
                @html_doc = Rexle.new(buffer.sub(/^<!DOCTYPE html>/,''))
         | 
| 19 19 |  | 
| @@ -21,9 +21,7 @@ class DataIsland | |
| 21 21 | 
             
                a.map(&:delete)    
         | 
| 22 22 |  | 
| 23 23 | 
             
                @html_doc.xpath('//div[@datactl]').map(&:delete)
         | 
| 24 | 
            -
             | 
| 25 24 | 
             
                @html_doc.root.element('body').attributes.delete :onload
         | 
| 26 | 
            -
             | 
| 27 25 | 
             
                h = @html_doc.element('//object').attributes
         | 
| 28 26 |  | 
| 29 27 | 
             
                path = { url: -> {File.dirname(location)}, 
         | 
| @@ -35,9 +33,8 @@ class DataIsland | |
| 35 33 | 
             
                @html_doc.xpath("//object[@type='text/xml']").each do |x|
         | 
| 36 34 |  | 
| 37 35 | 
             
                  h = x.attributes
         | 
| 36 | 
            +
                  tmp, type2 = RXFHelper.read(h[:data], opts)
         | 
| 38 37 |  | 
| 39 | 
            -
                  tmp, type2 = RXFHelper.read(h[:data])
         | 
| 40 | 
            -
                  
         | 
| 41 38 | 
             
                  location2 = case h[:data]
         | 
| 42 39 | 
             
                    when /^https?:\/\//
         | 
| 43 40 | 
             
                      h[:data]
         | 
| @@ -46,12 +43,13 @@ class DataIsland | |
| 46 43 | 
             
                    else
         | 
| 47 44 | 
             
                      @location +'/' + h[:data]
         | 
| 48 45 | 
             
                  end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                  dynarex = Dynarex.new location2      
         | 
| 46 | 
            +
                  
         | 
| 47 | 
            +
                  dynarex = Dynarex.new location2, opts      
         | 
| 51 48 |  | 
| 52 49 | 
             
                  if (h[:order] and h[:order][/^desc|descending$/]) \
         | 
| 53 50 | 
             
                      or dynarex.order = 'descending' then
         | 
| 54 | 
            -
                    records = dynarex.flat_records.reverse
         | 
| 51 | 
            +
                    #records = dynarex.flat_records.reverse
         | 
| 52 | 
            +
                    records = dynarex.flat_records
         | 
| 55 53 | 
             
                  else
         | 
| 56 54 | 
             
                    records = dynarex.flat_records
         | 
| 57 55 | 
             
                  end
         | 
| @@ -85,12 +83,13 @@ class DataIsland | |
| 85 83 | 
             
              end
         | 
| 86 84 |  | 
| 87 85 | 
             
              def add_to_destnodes(dn, raw_key, node)
         | 
| 86 | 
            +
             | 
| 88 87 | 
             
                key = raw_key.to_sym
         | 
| 89 88 | 
             
                dn.has_key?(key) ? dn[key] << node : dn[key] = [node]
         | 
| 90 89 | 
             
              end
         | 
| 91 90 |  | 
| 92 91 | 
             
              def render(flat_records, h, node)
         | 
| 93 | 
            -
             | 
| 92 | 
            +
                
         | 
| 94 93 | 
             
                sort_by = h[:sort_by]
         | 
| 95 94 | 
             
                range = h[:range]
         | 
| 96 95 |  | 
| @@ -118,42 +117,43 @@ class DataIsland | |
| 118 117 | 
             
                  else 
         | 
| 119 118 | 
             
                    recs = records
         | 
| 120 119 | 
             
                  end
         | 
| 121 | 
            -
                  
         | 
| 122 | 
            -
                  recs.each do |record|
         | 
| 123 120 |  | 
| 121 | 
            +
                  recs.each do |record|
         | 
| 122 | 
            +
                  
         | 
| 124 123 | 
             
                    rec = rec_orig.deep_clone
         | 
| 125 124 |  | 
| 126 125 | 
             
                    # get a reference to each element containing the datafld attribute
         | 
| 127 126 | 
             
                    dest_nodes = {}        
         | 
| 128 | 
            -
             | 
| 129 | 
            -
                    a = rec.xpath(' | 
| 127 | 
            +
             | 
| 128 | 
            +
                    a = rec.xpath('*//span[@class]|*//a[@class]')
         | 
| 130 129 |  | 
| 131 130 | 
             
                    a.each do |e|
         | 
| 131 | 
            +
             | 
| 132 132 | 
             
                      r = e.attribute(:class)[0][/\{([^\}]+)\}$/,1]
         | 
| 133 133 | 
             
                      add_to_destnodes(dest_nodes,r,e) if r
         | 
| 134 134 | 
             
                    end
         | 
| 135 135 |  | 
| 136 | 
            -
                    rec.xpath(' | 
| 136 | 
            +
                    rec.xpath('*//*[@datafld]').each do |e|
         | 
| 137 137 | 
             
                      add_to_destnodes(dest_nodes,e.attribute(:datafld).downcase,e)
         | 
| 138 138 | 
             
                    end
         | 
| 139 139 |  | 
| 140 | 
            -
                    rec.xpath(' | 
| 140 | 
            +
                    rec.xpath('*//a[@name]').each do |e|
         | 
| 141 141 | 
             
                      r = e.attribute(:name)[/\{([^\}]+)\}/,1]
         | 
| 142 142 | 
             
                      add_to_destnodes(dest_nodes,r,e) if r
         | 
| 143 143 | 
             
                    end        
         | 
| 144 144 |  | 
| 145 | 
            -
                    rec.xpath(' | 
| 145 | 
            +
                    rec.xpath('*//a[@href]').each do |e|
         | 
| 146 146 | 
             
                      r = e.attribute(:href)[/\{([^\}]+)\}/,1]
         | 
| 147 147 | 
             
                      add_to_destnodes(dest_nodes,r,e) if r
         | 
| 148 148 | 
             
                    end        
         | 
| 149 149 |  | 
| 150 | 
            -
                    rec.xpath(' | 
| 150 | 
            +
                    rec.xpath('*//object[@data]').each do |e|
         | 
| 151 151 |  | 
| 152 152 | 
             
                      r = e.attribute(:data)[/\{([^\}]+)\}$/,1]
         | 
| 153 153 | 
             
                      add_to_destnodes(dest_nodes,r,e) if r
         | 
| 154 154 | 
             
                    end        
         | 
| 155 155 |  | 
| 156 | 
            -
                    rec.xpath(' | 
| 156 | 
            +
                    rec.xpath('*//button[@onclick]').each do |e|
         | 
| 157 157 |  | 
| 158 158 | 
             
                      r = e.attribute(:onclick)[/\{([^\}]+)\}$/,1]
         | 
| 159 159 | 
             
                      add_to_destnodes(dest_nodes,r,e) if r
         | 
| @@ -259,4 +259,4 @@ class DataIsland | |
| 259 259 | 
             
                end
         | 
| 260 260 | 
             
              end
         | 
| 261 261 |  | 
| 262 | 
            -
            end
         | 
| 262 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: dataisland
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - James Robertson
         | 
| @@ -10,28 +10,32 @@ bindir: bin | |
| 10 10 | 
             
            cert_chain:
         | 
| 11 11 | 
             
            - |
         | 
| 12 12 | 
             
              -----BEGIN CERTIFICATE-----
         | 
| 13 | 
            -
               | 
| 14 | 
            -
               | 
| 15 | 
            -
               | 
| 16 | 
            -
               | 
| 17 | 
            -
               | 
| 18 | 
            -
               | 
| 19 | 
            -
               | 
| 20 | 
            -
               | 
| 21 | 
            -
               | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 24 | 
            -
               | 
| 25 | 
            -
               | 
| 26 | 
            -
               | 
| 27 | 
            -
               | 
| 28 | 
            -
               | 
| 29 | 
            -
               | 
| 30 | 
            -
               | 
| 31 | 
            -
               | 
| 32 | 
            -
               | 
| 13 | 
            +
              MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
         | 
| 14 | 
            +
              YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMzAxMTAwMzU0WhcN
         | 
| 15 | 
            +
              MjIwMzAxMTAwMzU0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
         | 
| 16 | 
            +
              cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDWEU4a
         | 
| 17 | 
            +
              I0Qjieu5nvUZBsZeKXozT8AexRL8BbqW5m9nfntrDBzWPHZn0whxVhx8zdYGxhgs
         | 
| 18 | 
            +
              Q+x4Ec5tP2eTVWniIJkoAA+8Mm0it0cqak5F/lD/zjrdgl5runFi5Lbv9whEWTMY
         | 
| 19 | 
            +
              riMQGvhI1Ci12N6FPkn0rkha6i731ToMMreF2iuJ+fqMWH1ZXNnAuc98zROa4AK8
         | 
| 20 | 
            +
              GHNhQbJxAYlcwnGXks/XcfGbKG/m0QyEwqyTfXk4XOIrPQ9M06zrEOc3gScj8RF/
         | 
| 21 | 
            +
              NLR1IgbghhA92o0gxmPVdotOpwi4HnRqPStkXC6xBeQ2FH2obY3q6PGAOem9Kt6Z
         | 
| 22 | 
            +
              EM2gYmNkGFwyaFJbWNzPAozbtjEIq5As9ij0C4TgFVFZK2le6bjqu57JEegLVB9u
         | 
| 23 | 
            +
              e4cUww0uQcFIDj+KFjCgDUQMggFoK2g8DRCCGN0Z5YFOBX4d/vIDnvxyKqanSnXg
         | 
| 24 | 
            +
              1vF7UgQo9iDjuwGU8KbQq7MkaWRycv9Fh0+aVFckvsgzKsrJaXRIBDBcywUCAwEA
         | 
| 25 | 
            +
              AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUssbTJHBm
         | 
| 26 | 
            +
              bGChY5s0bukixf0n1QwwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
         | 
| 27 | 
            +
              c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
         | 
| 28 | 
            +
              BgkqhkiG9w0BAQsFAAOCAYEADc/igbq+nrR3/B+Ygp0lP/rZgG29wBWMI29xdQE+
         | 
| 29 | 
            +
              okaY81kBA8Keg5lc9AZdkF4JJMdNKZvWLrWtfwVDfByV1yPV7kBBNQITuEMD5nuR
         | 
| 30 | 
            +
              vNm86+dx/8hWimLZZCeLVG+4DwPCkbvYF8SHO4Vwe0FcavlEEc/RyuRkkDsSPP+V
         | 
| 31 | 
            +
              7Y7atBKh9jJ056CMq96Vm4Ug7/ybX8tHJLdY0tOFaOnTlYCMNVYtr0HA4oYEwDVZ
         | 
| 32 | 
            +
              IjMPocXBbBuM1ggoSG2vF6aQFjYFlPxLbhOtYzaHyEmrnA1GhO32VHz1Peq0gCvs
         | 
| 33 | 
            +
              EEptynuTww0xRSLB/e0LGGG3ttZDuNIw9HFXniGbiSIx7n5Ly5tYSPoiGWlnM4FZ
         | 
| 34 | 
            +
              ZS38HOEt0uowDVTfGVrf3wsLa9aq5Moa+KqLd+5uM3mlFni234in9JuLmg4qnAi4
         | 
| 35 | 
            +
              xiTPIrd89hKwtrTuHAV56n1YJMMon+bv2drMjL/8g1fzxhz6PcKFlJU9d0UjsIK0
         | 
| 36 | 
            +
              CAkOMP1IH0YbWH3T9t+Osrgt
         | 
| 33 37 | 
             
              -----END CERTIFICATE-----
         | 
| 34 | 
            -
            date:  | 
| 38 | 
            +
            date: 2021-03-01 00:00:00.000000000 Z
         | 
| 35 39 | 
             
            dependencies:
         | 
| 36 40 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 41 | 
             
              name: dynarex
         | 
| @@ -39,42 +43,42 @@ dependencies: | |
| 39 43 | 
             
                requirements:
         | 
| 40 44 | 
             
                - - "~>"
         | 
| 41 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            -
                    version: '1. | 
| 46 | 
            +
                    version: '1.8'
         | 
| 43 47 | 
             
                - - ">="
         | 
| 44 48 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            -
                    version: 1. | 
| 49 | 
            +
                    version: 1.8.27
         | 
| 46 50 | 
             
              type: :runtime
         | 
| 47 51 | 
             
              prerelease: false
         | 
| 48 52 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 49 53 | 
             
                requirements:
         | 
| 50 54 | 
             
                - - "~>"
         | 
| 51 55 | 
             
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            -
                    version: '1. | 
| 56 | 
            +
                    version: '1.8'
         | 
| 53 57 | 
             
                - - ">="
         | 
| 54 58 | 
             
                  - !ruby/object:Gem::Version
         | 
| 55 | 
            -
                    version: 1. | 
| 59 | 
            +
                    version: 1.8.27
         | 
| 56 60 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 57 61 | 
             
              name: rxfhelper
         | 
| 58 62 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 59 63 | 
             
                requirements:
         | 
| 60 64 | 
             
                - - "~>"
         | 
| 61 65 | 
             
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            -
                    version: ' | 
| 66 | 
            +
                    version: '1.1'
         | 
| 63 67 | 
             
                - - ">="
         | 
| 64 68 | 
             
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            -
                    version:  | 
| 69 | 
            +
                    version: 1.1.3
         | 
| 66 70 | 
             
              type: :runtime
         | 
| 67 71 | 
             
              prerelease: false
         | 
| 68 72 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 73 | 
             
                requirements:
         | 
| 70 74 | 
             
                - - "~>"
         | 
| 71 75 | 
             
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            -
                    version: ' | 
| 76 | 
            +
                    version: '1.1'
         | 
| 73 77 | 
             
                - - ">="
         | 
| 74 78 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version:  | 
| 79 | 
            +
                    version: 1.1.3
         | 
| 76 80 | 
             
            description: 
         | 
| 77 | 
            -
            email: james@ | 
| 81 | 
            +
            email: james@jamesrobertson.eu
         | 
| 78 82 | 
             
            executables: []
         | 
| 79 83 | 
             
            extensions: []
         | 
| 80 84 | 
             
            extra_rdoc_files: []
         | 
| @@ -100,8 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 100 104 | 
             
                  version: '0'
         | 
| 101 105 | 
             
            requirements: []
         | 
| 102 106 | 
             
            rubyforge_project: 
         | 
| 103 | 
            -
            rubygems_version: 2. | 
| 107 | 
            +
            rubygems_version: 2.7.10
         | 
| 104 108 | 
             
            signing_key: 
         | 
| 105 109 | 
             
            specification_version: 4
         | 
| 106 | 
            -
            summary:  | 
| 110 | 
            +
            summary: Transforms an HTML page containing XML data islands (a Microsoft Internet
         | 
| 111 | 
            +
              Explorer 5.0 like feature) to HTML.
         | 
| 107 112 | 
             
            test_files: []
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |