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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e5cb3fb23bdbadadbc09927caf8290a487024ba
4
- data.tar.gz: c106d6397abf4421c4585edeb08731672024bc22
3
+ metadata.gz: 68e513b8fdd750c72fabe07c753e59d5b565088f
4
+ data.tar.gz: 6ce67421162e952525e8925434792484fbd1053b
5
5
  SHA512:
6
- metadata.gz: 2413e53b29a3dad2412d64fb7fb2a83780b9ae462a29ead1802fec907580d7db83618e03d99ff361192d4de28f35e7799207196945352aa28a0790afe8e725aa
7
- data.tar.gz: 61c384317e59acdcedabd667fd806cd380b229b5b73b85468b8abfc90550fe0236241da8a6c8881cb3ad1875a403a77f6f072a862b6f2547ba456b91cc15c729
6
+ metadata.gz: 3ad5ba37e143554029cece967288848fcc124d13e040c2c31015fda1b5aaa3eac8d87e8a56c17af861db37a6f52ece229bd417ec1bc46ed3fbe80689f6d370a1
7
+ data.tar.gz: d642630d259f89419e6939982ef03eb46bbfcc67864a9438c0afcf9eada9e47e67c3125fff4396650741bacc7101925049a018de5312048920b4eccc622e0e81
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- ~3s��X�����9<
2
- .��<�����A��w+($���FU��vBNDV���]¨2���S־������{fw��)�C�h�+�6{�x�eu��iƮ��(�@̜&���դ�����ڿ\��>�}�(A��$�
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, i) if @indent == true
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\(\) &lt; \d+/)
262
267
 
263
- condition = x.attributes[:test].gsub('position()',i.to_s).gsub('&lt;','<').gsub('&gt;','>')
268
+ result = if cond then
269
+
270
+ cond.sub!(/position\(\)/, i.to_s)
271
+ cond.sub!(/&lt;/,'<')
272
+ cond.sub!(/&gt;/,'>')
273
+
274
+ b = eval(cond)
275
+
276
+ if b then
264
277
 
265
- result = element.element condition
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, i=0)
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, i)
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, i) if @indent == true
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 = [:'xsl_apply_templates', :'xsl_value_of', :'xsl_element', :'xsl_if', :'xsl_choose',
440
- :'xsl_when', :'xsl_copy_of', :'xsl_attribute', :'xsl_for_each', :'xsl_text']
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.0
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-10 00:00:00.000000000 Z
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