rexslt 0.5.0 → 0.5.1
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 +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
|