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
|