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 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