rexslt 0.5.0 → 0.5.1
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 +2 -4
- data.tar.gz.sig +0 -0
- data/lib/rexslt.rb +43 -12
- metadata +2 -2
- 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: 68e513b8fdd750c72fabe07c753e59d5b565088f
|
4
|
+
data.tar.gz: 6ce67421162e952525e8925434792484fbd1053b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ad5ba37e143554029cece967288848fcc124d13e040c2c31015fda1b5aaa3eac8d87e8a56c17af861db37a6f52ece229bd417ec1bc46ed3fbe80689f6d370a1
|
7
|
+
data.tar.gz: d642630d259f89419e6939982ef03eb46bbfcc67864a9438c0afcf9eada9e47e67c3125fff4396650741bacc7101925049a018de5312048920b4eccc622e0e81
|
checksums.yaml.gz.sig
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
������zC�ܣ�
|
4
|
-
�/�}���M8L�@��N8�"�_�����5cw\�O������������Ϥ�T�gb�+u���5:텟�����Һ9���'0�x�^����7Yն�#8
|
1
|
+
5)���!���0�ұ����}Q1N�bF�ZA�T��x���Fze�x��?.�)h�,
|
2
|
+
|k����ꔝA�.�tlZ��������}"VZ���B��n��?��J^Ϝ0��P���M5˱�3� ���=Yu�>��`�X�{��U�C�Z^z�|9�v����\LB
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/rexslt.rb
CHANGED
@@ -97,6 +97,7 @@ class Rexslt
|
|
97
97
|
|
98
98
|
if match? keypath, item then
|
99
99
|
matched_node = element.xpath field
|
100
|
+
|
100
101
|
true
|
101
102
|
else
|
102
103
|
child = item.pop
|
@@ -217,7 +218,7 @@ class Rexslt
|
|
217
218
|
doc_element.text = element.text if element.text
|
218
219
|
read_node(x, element, new_element, indent, i)
|
219
220
|
doc_element.add new_element
|
220
|
-
indent_after(element, x, doc_element, indent
|
221
|
+
indent_after(element, x, doc_element, indent) if @indent == true
|
221
222
|
end
|
222
223
|
|
223
224
|
def xsl_for_each(element, x, doc_element, indent, i)
|
@@ -259,10 +260,34 @@ class Rexslt
|
|
259
260
|
end
|
260
261
|
|
261
262
|
def xsl_if(element, x, doc_element, indent, i=0)
|
263
|
+
|
264
|
+
condition = x.attributes[:test].clone
|
265
|
+
|
266
|
+
cond = condition.slice!(/position\(\) < \d+/)
|
262
267
|
|
263
|
-
|
268
|
+
result = if cond then
|
269
|
+
|
270
|
+
cond.sub!(/position\(\)/, i.to_s)
|
271
|
+
cond.sub!(/</,'<')
|
272
|
+
cond.sub!(/>/,'>')
|
273
|
+
|
274
|
+
b = eval(cond)
|
275
|
+
|
276
|
+
if b then
|
264
277
|
|
265
|
-
|
278
|
+
if condition.length > 0 then
|
279
|
+
element.element condition
|
280
|
+
else
|
281
|
+
true
|
282
|
+
end
|
283
|
+
else
|
284
|
+
false
|
285
|
+
end
|
286
|
+
|
287
|
+
else
|
288
|
+
|
289
|
+
element.element condition
|
290
|
+
end
|
266
291
|
|
267
292
|
if result then
|
268
293
|
read_node x, element, doc_element, indent, i
|
@@ -305,7 +330,7 @@ class Rexslt
|
|
305
330
|
end
|
306
331
|
|
307
332
|
def read_node(template_node, element, doc_element, indent, i=0)
|
308
|
-
|
333
|
+
|
309
334
|
procs = {"Rexle::Element" => :read_raw_element, "String" => :read_raw_text}
|
310
335
|
|
311
336
|
template_node.children.each_with_index do |x,j|
|
@@ -341,8 +366,8 @@ class Rexslt
|
|
341
366
|
if method_name == :'xsl_apply_templates' then
|
342
367
|
#doc_element = doc_element.elements.last
|
343
368
|
end
|
344
|
-
|
345
|
-
method(method_name).call(element, x, doc_element, indent,
|
369
|
+
|
370
|
+
method(method_name).call(element, x, doc_element, indent, j)
|
346
371
|
|
347
372
|
else
|
348
373
|
|
@@ -370,7 +395,7 @@ class Rexslt
|
|
370
395
|
|
371
396
|
indent_before(element, x, doc_element, new_indent, j) if @indent == true
|
372
397
|
|
373
|
-
read_node(x, element, new_element, new_indent,
|
398
|
+
read_node(x, element, new_element, new_indent, j)
|
374
399
|
doc_element.add new_element
|
375
400
|
|
376
401
|
if @indent == true then
|
@@ -384,7 +409,7 @@ class Rexslt
|
|
384
409
|
|
385
410
|
else
|
386
411
|
|
387
|
-
indent_before(element, x, doc_element, new_indent,
|
412
|
+
indent_before(element, x, doc_element, new_indent, j) if @indent == true
|
388
413
|
|
389
414
|
val = @indent == true ? x.to_s : x.to_s
|
390
415
|
doc_element.add val
|
@@ -394,6 +419,10 @@ class Rexslt
|
|
394
419
|
|
395
420
|
end
|
396
421
|
|
422
|
+
def xsl_output()
|
423
|
+
|
424
|
+
end
|
425
|
+
|
397
426
|
def xsl_text(element, x, doc_element, indent, i)
|
398
427
|
|
399
428
|
val = @indent == true ? padding(doc_element, indent, x) : ''
|
@@ -425,7 +454,7 @@ class Rexslt
|
|
425
454
|
|
426
455
|
|
427
456
|
def xslt_transform(raw_xsl, xml, custom_params={})
|
428
|
-
|
457
|
+
|
429
458
|
doc_xml = xml.is_a?(Rexle) ? xml : Rexle.new(xml)
|
430
459
|
|
431
460
|
@doc_xsl = raw_xsl.is_a?(Rexle) ? raw_xsl : Rexle.new(raw_xsl)
|
@@ -436,8 +465,10 @@ class Rexslt
|
|
436
465
|
indent = 0
|
437
466
|
|
438
467
|
previous_indent = 0
|
439
|
-
@xsl_methods =
|
440
|
-
|
468
|
+
@xsl_methods = %i(apply_templates value_of element if choose when copy_of
|
469
|
+
attribute for_each text output).map do |x|
|
470
|
+
('xsl_' + x.to_s).to_sym
|
471
|
+
end
|
441
472
|
|
442
473
|
strip_space = @doc_xsl.root.element "xsl:strip-space/attribute::elements"
|
443
474
|
|
@@ -469,7 +500,7 @@ class Rexslt
|
|
469
500
|
# using the 1st template
|
470
501
|
xpath = String.new @templates.to_a[0][0]
|
471
502
|
|
472
|
-
read_node(@templates.to_a[0][-1], doc_xml.element(xpath), @doc.root, indent)
|
503
|
+
read_node(@templates.to_a[0][-1], doc_xml.element(xpath), @doc.root, indent)
|
473
504
|
|
474
505
|
end
|
475
506
|
|
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.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
38j2+6ULVWalsVein3whb7qB6IOvxoSqjz6n7jAKFGHovoXPUqpv5y5Yor23rTrn
|
32
32
|
0YwisIc3UkL30g==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2016-03-
|
34
|
+
date: 2016-03-14 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rxfhelper
|
metadata.gz.sig
CHANGED
Binary file
|