rexslt 0.3.8 → 0.3.9
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.
- data/lib/rexslt.rb +19 -26
- metadata +2 -2
data/lib/rexslt.rb
CHANGED
@@ -95,7 +95,7 @@ class Rexslt
|
|
95
95
|
r = x.element(sort_field);
|
96
96
|
|
97
97
|
if r.respond_to?(:text) then
|
98
|
-
orderx == 'ascending' ? r.
|
98
|
+
orderx == 'ascending' ? r.value : -r.value
|
99
99
|
else
|
100
100
|
|
101
101
|
if orderx == 'ascending' then
|
@@ -140,14 +140,12 @@ class Rexslt
|
|
140
140
|
def xsl_attribute(element, x, doc_element, indent, i)
|
141
141
|
|
142
142
|
name = x.attributes[:name]
|
143
|
-
value = x.
|
143
|
+
value = x.value
|
144
144
|
doc_element.add_attribute name, value
|
145
145
|
end
|
146
146
|
|
147
147
|
def xsl_choose(element, x, doc_element, indent, i)
|
148
148
|
|
149
|
-
#get the when clause
|
150
|
-
|
151
149
|
r = x.xpath("xsl:when").map do |xsl_node|
|
152
150
|
|
153
151
|
condition = xsl_node.attributes[:test]
|
@@ -187,7 +185,7 @@ class Rexslt
|
|
187
185
|
name = element.element("name()")
|
188
186
|
end
|
189
187
|
|
190
|
-
new_element = Rexle::Element.new(name).add_text(x.
|
188
|
+
new_element = Rexle::Element.new(name).add_text(x.value.strip)
|
191
189
|
doc_element.add new_element
|
192
190
|
read_node(x, element, new_element, indent, i)
|
193
191
|
indent_after(element, x, doc_element, indent, i) if @indent == true
|
@@ -204,7 +202,7 @@ class Rexslt
|
|
204
202
|
if sort_node then
|
205
203
|
|
206
204
|
sort_field = sort_node.attributes[:select]
|
207
|
-
|
205
|
+
raw_order = sort_node.attributes[:order]
|
208
206
|
sort_node.parent.delete sort_node
|
209
207
|
|
210
208
|
if sort_field then
|
@@ -213,7 +211,7 @@ class Rexslt
|
|
213
211
|
r = node.element sort_field
|
214
212
|
|
215
213
|
if r.is_a? Rexle::Element then
|
216
|
-
r.
|
214
|
+
r.value
|
217
215
|
else
|
218
216
|
# it's a string
|
219
217
|
r
|
@@ -221,6 +219,9 @@ class Rexslt
|
|
221
219
|
end
|
222
220
|
|
223
221
|
end
|
222
|
+
|
223
|
+
field = raw_order[/^\{\$(.*)\}/,1]
|
224
|
+
order = field ? @param[field] : raw_order
|
224
225
|
nodes.reverse! if order.downcase == 'descending'
|
225
226
|
end
|
226
227
|
|
@@ -317,7 +318,7 @@ class Rexslt
|
|
317
318
|
if v[/{/] then
|
318
319
|
|
319
320
|
v.gsub!(/(\{[^\}]+\})/) do |x2|
|
320
|
-
element.
|
321
|
+
element.value(x2[/\{([^\}]+)\}/,1]).clone
|
321
322
|
end
|
322
323
|
|
323
324
|
end
|
@@ -325,9 +326,7 @@ class Rexslt
|
|
325
326
|
|
326
327
|
indent_before(element, x, doc_element, new_indent, i) if @indent == true
|
327
328
|
|
328
|
-
|
329
|
-
|
330
|
-
new_element2.text = new_element2.text.strip
|
329
|
+
new_element2.value = new_element2.value.strip
|
331
330
|
doc_element.add new_element2
|
332
331
|
|
333
332
|
read_node(x, element, new_element2, new_indent, i)
|
@@ -352,22 +351,22 @@ class Rexslt
|
|
352
351
|
|
353
352
|
def xsl_text(element, x, doc_element, indent, i)
|
354
353
|
val = @indent == true ? padding(doc_element, indent, x) : ''
|
355
|
-
val += x.
|
354
|
+
val += x.value
|
356
355
|
doc_element.add_element val
|
357
356
|
end
|
358
357
|
|
359
358
|
def xsl_value_of(element, x, doc_element, indent, i)
|
360
|
-
|
359
|
+
|
361
360
|
field = x.attributes[:select]
|
362
361
|
o = case field
|
363
362
|
when '.'
|
364
|
-
element.
|
363
|
+
element.value
|
365
364
|
when /^\$/
|
366
365
|
@param[field[/^\$(.*)/,1]]
|
367
366
|
else
|
368
|
-
element.
|
367
|
+
element.value(field)
|
369
368
|
end
|
370
|
-
|
369
|
+
|
371
370
|
doc_element.add_element o.to_s
|
372
371
|
end
|
373
372
|
|
@@ -389,7 +388,7 @@ class Rexslt
|
|
389
388
|
elements = strip_space.value
|
390
389
|
elements.split.each do |element|
|
391
390
|
nodes = doc_xml.root.xpath "//" + element + "[text()]"
|
392
|
-
a = nodes.select {|x| x.
|
391
|
+
a = nodes.select {|x| x.value.to_s.strip.empty?}
|
393
392
|
a.each {|node| node.parent.delete node}
|
394
393
|
end
|
395
394
|
end
|
@@ -399,7 +398,7 @@ class Rexslt
|
|
399
398
|
|
400
399
|
@indent = (h and h[:indent] == 'yes') ? true : false
|
401
400
|
|
402
|
-
params = @doc_xsl.root.xpath("xsl:param").map{|x| [x.attributes[:name], x.
|
401
|
+
params = @doc_xsl.root.xpath("xsl:param").map{|x| [x.attributes[:name], x.value]}
|
403
402
|
@param = Hash[params].merge(custom_params) if params
|
404
403
|
# search for params
|
405
404
|
|
@@ -412,14 +411,8 @@ class Rexslt
|
|
412
411
|
end
|
413
412
|
|
414
413
|
# using the 1st template
|
415
|
-
xpath = String.new @templates.to_a[0][0]
|
416
|
-
|
417
|
-
if doc_xml.root.name == xpath then
|
418
|
-
read_node(@templates.to_a[0][-1], doc_xml.element(xpath), @doc.root, indent)
|
419
|
-
else
|
420
|
-
# use this template
|
421
|
-
read_node(@templates.to_a[0][-1], doc_xml.element(xpath), @doc.root, indent)
|
422
|
-
end
|
414
|
+
xpath = String.new @templates.to_a[0][0]
|
415
|
+
read_node(@templates.to_a[0][-1], doc_xml.element(xpath), @doc.root, indent)
|
423
416
|
|
424
417
|
end
|
425
418
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rexslt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Robertson
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-19 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rxfhelper
|