Excerpts from why the lucky stiff's mail of 24 Jul 2005 (EDT):
> Yeah, that's good stuff, William.  Thanks.

Whoops, did I forget to include the patch itself? Parameter naming
comments also welcome...

diff -u -r1.11 rss.rb
--- lib/hobix/out/rss.rb        15 May 2005 21:04:47 -0000      1.11
+++ lib/hobix/out/rss.rb        24 Jul 2005 15:56:05 -0000
@@ -19,8 +19,13 @@
 module Hobix
 module Out
 class RSS < Hobix::BaseOutput
-    def initialize( weblog )
+    def initialize( weblog, params = {} )
         @path = weblog.skel_path
+        @extra_ns = params["namespaces"]
+        @extra_els = params["elements"]
+        @summaries = params["summary-only"]
+        @more_link = params["more"]
+        @comment_aname = params["comment-anchor"]
     end
     def extension
         "rss"
@@ -51,6 +56,16 @@
         rssdoc.elements['/rss/channel/link'].text = vars[:weblog].link.to_s
         rssdoc.elements['/rss/channel/description'].text = 
vars[:weblog].tagline
         rssdoc.elements['/rss/channel/dc:date'].text = Time.now.utc.strftime( 
"%Y-%m-%dT%H:%M:%S+00:00" )
+
+        @extra_ns.each do |k, v|
+            rssdoc.elements['/rss'].attributes["xmlns:" + k.to_s] = v.to_s
+        end if @extra_ns
+        @extra_els.each do |k, v|
+            extra = REXML::Element.new k.to_s
+            extra.text = v.to_s
+            rssdoc.elements['/rss/channel'].add extra
+        end if @extra_els
+
         ( vars[:entries] || [vars[:entry]] ).each do |e|
             ele = REXML::Element.new 'item'
             ele_title = REXML::Element.new 'title'
@@ -59,6 +74,11 @@
             ele_link = REXML::Element.new 'link'
             ele_link.text = "#{ e.link }"
             ele << ele_link
+            if @comment_aname
+              ele_comments = REXML::Element.new 'comments'
+              ele_comments.text = "#{ e.link [EMAIL PROTECTED]"
+              ele << ele_comments
+            end
             ele_guid = REXML::Element.new 'guid'
             ele_guid.attributes['isPermaLink'] = 'false'
             ele_guid.text = "#{ e.id [EMAIL PROTECTED] vars[:weblog].link }"
@@ -78,7 +98,12 @@
             ele_pubDate.text = ( e.modified || e.created ).dup.utc.strftime( 
"%Y-%m-%dT%H:%M:%S+00:00" )
             ele << ele_pubDate
             ele_desc = REXML::Element.new 'description'
-            ele_desc.text = e.content.to_html.gsub( /(src|href)="\//, 
"\\1=\"#{ vars[:weblog].link.rooturi }/" )
+            ele_desc.text = 
+                if @summaries && e.summary
+                  e.summary.to_html + (@more_link ? %{<p><a 
href="#{e.link}">[EMAIL PROTECTED]</a></p>} : "")
+                else
+                  e.content.to_html
+                end.gsub( /(src|href)="\//, "\\1=\"#{ 
vars[:weblog].link.rooturi }/" )
             ele << ele_desc
             rssdoc.elements['/rss/channel'].add ele
         end

-- 
William <[EMAIL PROTECTED]>
_______________________________________________
Hobix-is-the-way mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/hobix-is-the-way

Reply via email to