rexslt 0.6.12 → 0.6.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -2
- data/lib/rexslt.rb +66 -17
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6b3abb16a3aadcc6df66d725fe37177fe617b9a9c4f2c78358a1504e0a8d3a8
|
4
|
+
data.tar.gz: 0e8bf4584269ba064755b1426f9f9ad1b9abb009af5398076df0f9873470c0cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f636b79d68d8a439515d82aa40a971e2f80e4274a3b5f82cafdabc1b949590655133a4bff5c986333a70ff1edf0767655f947021c0d2477449775b3aa403611
|
7
|
+
data.tar.gz: cb166cdc0bf9cd862c9a832bc6a1d282ec02b6405e7192989e8188deadb61da9bcb72569ae069e58e793d78423c5d1aed26b16a33e151a409e6f27d685dda83b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
`N�0��n�s�)y�(�u��(̗��n���3`!~
|
2
|
+
�K2��AG4�S�'I��U��P�/)��~�$�#� �1��aFu&��V�+�̯?>���9���!�G��<�?X�',��
|
data/lib/rexslt.rb
CHANGED
@@ -11,6 +11,7 @@ require 'logger'
|
|
11
11
|
#
|
12
12
|
# 01-Feb-2019: bug fix: new line characters are no longer stripped
|
13
13
|
# between XSL elements
|
14
|
+
# bug fix: An attribute variable value is now returned correctly
|
14
15
|
# 19-Jan-2018: feature: Implemented Rexslt#to_xml which returns pretty XML
|
15
16
|
# 16-Sep-2017: improvement: all predicates in an xsl:choose
|
16
17
|
# condition now must be true
|
@@ -89,7 +90,7 @@ class Rexslt
|
|
89
90
|
def to_doc(); @doc; end
|
90
91
|
|
91
92
|
def to_xml()
|
92
|
-
@doc.root.xml(pretty: true).sub(/<
|
93
|
+
@doc.root.xml(pretty: true).sub(/<root4>/,'').sub(/<\/root4>$/m,'')
|
93
94
|
end
|
94
95
|
|
95
96
|
private
|
@@ -245,6 +246,24 @@ class Rexslt
|
|
245
246
|
end
|
246
247
|
|
247
248
|
end
|
249
|
+
|
250
|
+
def xsl_cdata(element, x, doc_element, indent, i)
|
251
|
+
puts ('cdata x: ' + element.inspect) if @debug
|
252
|
+
|
253
|
+
new_element = Rexle::CData.new(x.value.to_s)
|
254
|
+
|
255
|
+
read_node(x, element, new_element, indent, i)
|
256
|
+
doc_element.add new_element
|
257
|
+
end
|
258
|
+
|
259
|
+
def xsl_comment(element, x, doc_element, indent, i)
|
260
|
+
#puts ('comment x: ' + element.inspect) if @debug
|
261
|
+
|
262
|
+
new_element = Rexle::Comment.new(x.value.to_s)
|
263
|
+
|
264
|
+
read_node(x, element, new_element, indent, i)
|
265
|
+
doc_element.add new_element
|
266
|
+
end
|
248
267
|
|
249
268
|
def xsl_copy_of(element, x, doc_element, indent, i)
|
250
269
|
#jr251012 indent = 1 unless indent
|
@@ -264,12 +283,15 @@ class Rexslt
|
|
264
283
|
name = x.attributes[:name]
|
265
284
|
variable = name[/^\{(.*)\}$/,1]
|
266
285
|
|
286
|
+
puts 'variable: ' + variable.inspect if @debug
|
287
|
+
|
267
288
|
if variable then
|
268
289
|
name = element.element(variable)
|
269
290
|
end
|
270
291
|
|
271
292
|
new_element = Rexle::Element.new(name) # .add_text(x.value.strip)
|
272
|
-
|
293
|
+
puts 'element.text: ' + element.to_s.inspect
|
294
|
+
new_element.text = element.text.to_s.strip
|
273
295
|
|
274
296
|
read_node(x, element, new_element, indent, i)
|
275
297
|
doc_element.add new_element
|
@@ -352,9 +374,11 @@ class Rexslt
|
|
352
374
|
end
|
353
375
|
|
354
376
|
def indent_after(element, x, doc_element, prev_indent)
|
377
|
+
|
378
|
+
puts 'indent? : ' + @indent.inspect if @debug
|
355
379
|
|
356
380
|
if @indent == true then
|
357
|
-
doc_element.add_text
|
381
|
+
doc_element.add_text ' ' * (prev_indent > 0 ? prev_indent - 1 : prev_indent)
|
358
382
|
end
|
359
383
|
end
|
360
384
|
|
@@ -390,7 +414,10 @@ class Rexslt
|
|
390
414
|
:ignore
|
391
415
|
end
|
392
416
|
|
393
|
-
method(name).call(element, x, doc_element, indent, i)
|
417
|
+
r2 = method(name).call(element, x, doc_element, indent, i)
|
418
|
+
puts 'r2: ' + r2.inspect if @debug
|
419
|
+
r2
|
420
|
+
|
394
421
|
end
|
395
422
|
|
396
423
|
end
|
@@ -436,20 +463,28 @@ class Rexslt
|
|
436
463
|
new_element.attributes.each do |k,raw_v|
|
437
464
|
|
438
465
|
v = raw_v.is_a?(Array) ? raw_v.join(' ') : raw_v
|
439
|
-
|
466
|
+
|
467
|
+
puts 'v: ' + v.inspect if @debug
|
468
|
+
|
440
469
|
if v[/{/] then
|
441
470
|
|
442
471
|
v.gsub!(/(\{[^\}]+\})/) do |x2|
|
443
472
|
|
444
473
|
xpath = x2[/\{([^\}]+)\}/,1]
|
445
|
-
text
|
474
|
+
puts 'element.text(xpath): ' + element.text(xpath).inspect if @debug
|
475
|
+
text = element.text(xpath).to_s.strip
|
476
|
+
puts 'text: ' + text.inspect if @debug
|
446
477
|
text ? text.clone : ''
|
447
478
|
|
448
479
|
end
|
480
|
+
|
481
|
+
puts '2. v: ' + v.inspect if @debug
|
449
482
|
|
450
483
|
end
|
451
484
|
end
|
452
|
-
|
485
|
+
|
486
|
+
puts 'x.children.length: ' + x.children.length.inspect if @debug
|
487
|
+
|
453
488
|
if x.children.length > 0 then
|
454
489
|
|
455
490
|
indent_before(element, x, doc_element, new_indent, j) if @indent == true
|
@@ -468,31 +503,43 @@ class Rexslt
|
|
468
503
|
|
469
504
|
else
|
470
505
|
|
471
|
-
indent_before(element, x,
|
506
|
+
indent_before(element, x, new_element, new_indent, j) if @indent == true
|
472
507
|
|
473
508
|
val = @indent == true ? x.to_s : x.to_s
|
474
|
-
doc_element.add val
|
509
|
+
#jr020219 doc_element.add val
|
510
|
+
doc_element.add new_element
|
475
511
|
|
476
512
|
end
|
477
|
-
|
513
|
+
|
478
514
|
end
|
515
|
+
#new_element
|
516
|
+
#puts 'attributes: ' + new_element.attributes.inspect if @debug
|
479
517
|
|
480
518
|
end
|
481
519
|
|
482
|
-
def value_of(x,
|
520
|
+
def value_of(x, elementx, i)
|
521
|
+
|
522
|
+
puts 'value_of: ' + elementx.to_s.inspect if @debug
|
483
523
|
|
484
524
|
field = x.attributes[:select]
|
485
525
|
|
486
526
|
o = case field
|
487
527
|
when '.'
|
488
|
-
|
528
|
+
elementx.value
|
489
529
|
when /^\$/
|
490
530
|
@param[field[/^\$(.*)/,1]]
|
491
531
|
when 'position()'
|
492
532
|
i.to_s
|
493
533
|
else
|
494
|
-
|
495
|
-
|
534
|
+
r = elementx.element(field)
|
535
|
+
if r.is_a? Rexle::Element::Attribute
|
536
|
+
r.value.to_s
|
537
|
+
elsif r.is_a? Rexle::Element
|
538
|
+
r.texts.join
|
539
|
+
else
|
540
|
+
''
|
541
|
+
end
|
542
|
+
|
496
543
|
end
|
497
544
|
|
498
545
|
end
|
@@ -516,7 +563,8 @@ class Rexslt
|
|
516
563
|
end
|
517
564
|
|
518
565
|
def xsl_value_of(element, x, doc_element, indent, i)
|
519
|
-
|
566
|
+
|
567
|
+
#puts 'xsl_value_of: ' + x.inspect if @debug
|
520
568
|
s = value_of(x, element,i)
|
521
569
|
doc_element.add_text s
|
522
570
|
doc_element
|
@@ -530,7 +578,7 @@ class Rexslt
|
|
530
578
|
|
531
579
|
doc_xml = xml.is_a?(Rexle) ? xml : Rexle.new(xml)
|
532
580
|
|
533
|
-
@doc_xsl = raw_xsl.is_a?(Rexle) ? raw_xsl : Rexle.new(raw_xsl)
|
581
|
+
@doc_xsl = raw_xsl.is_a?(Rexle) ? raw_xsl : Rexle.new(raw_xsl.gsub(/(?<=\<\/xsl:text>)[^<]+/,''))
|
534
582
|
puts 'after @doc_xsl'.info if @debug
|
535
583
|
|
536
584
|
#jr2040516 filter_out_spaces @doc_xsl.root
|
@@ -541,7 +589,7 @@ class Rexslt
|
|
541
589
|
|
542
590
|
previous_indent = 0
|
543
591
|
@xsl_methods = %i(apply_templates value_of element if choose when copy_of
|
544
|
-
attribute for_each text output call_template).map do |x|
|
592
|
+
attribute for_each text output call_template comment cdata).map do |x|
|
545
593
|
('xsl_' + x.to_s).to_sym
|
546
594
|
end
|
547
595
|
|
@@ -557,6 +605,7 @@ class Rexslt
|
|
557
605
|
end
|
558
606
|
|
559
607
|
h = @doc_xsl.root.element("xsl:output/attribute::*")
|
608
|
+
puts 'h: ' + h.inspect if @debug
|
560
609
|
puts 'after h'.info if @debug
|
561
610
|
|
562
611
|
if h and ((h[:method] and h[:method].downcase == 'html') \
|
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.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
lsqJ2/yU8bVVS+tkDVmCLdDn+RMoPYrLqZGbWwm5913h255DeUC6/qKofxWvR+XC
|
36
36
|
hyIDI2yf0ueF+Lirvch+gr7J
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-02-
|
38
|
+
date: 2019-02-02 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rxfhelper
|
metadata.gz.sig
CHANGED
Binary file
|