dataisland 0.1.16 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|