dynarex 1.1.30 → 1.1.31
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/dynarex.rb +13 -4
- metadata +1 -1
data/lib/dynarex.rb
CHANGED
@@ -283,13 +283,22 @@ EOF
|
|
283
283
|
def to_rss(opt={}, xslt=nil)
|
284
284
|
|
285
285
|
unless xslt then
|
286
|
+
|
286
287
|
h = {limit: 11}.merge(opt)
|
287
288
|
doc = Rexle.new(self.to_xslt)
|
288
289
|
e = doc.element('//xsl:apply-templates[2]')
|
289
|
-
v = e.attributes[:select]
|
290
|
-
e.attributes[:select] = v + "[position() < #{h[:limit]}]"
|
291
290
|
doc2 = Rexle.new "<xsl:sort order='descending' data-type='number' select='@id'/>"
|
292
|
-
e.add doc2.root
|
291
|
+
e.add doc2.root
|
292
|
+
|
293
|
+
e2 = doc.root.element('xsl:template[3]')
|
294
|
+
item = e2.element('item')
|
295
|
+
new_item = item.deep_clone
|
296
|
+
item.delete
|
297
|
+
|
298
|
+
xslif = Rexle.new("<xsl:if test='position() < #{h[:limit]}'/>").root
|
299
|
+
e2.add xslif.root
|
300
|
+
xslif.add new_item
|
301
|
+
|
293
302
|
xslt = doc.xml
|
294
303
|
end
|
295
304
|
|
@@ -562,4 +571,4 @@ EOF
|
|
562
571
|
end
|
563
572
|
end
|
564
573
|
|
565
|
-
end
|
574
|
+
end
|