rexslt 0.3.8 → 0.3.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|