[Hiki-cvs 1550] [1097] fix RSSPage to use correct URI

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 12月 2日 (水) 22:14:43 JST


Revision: 1097
          http://sourceforge.jp/projects/hiki/svn/view?view=rev&revision=1097
Author:   okkez
Date:     2009-12-02 22:14:43 +0900 (Wed, 02 Dec 2009)

Log Message:
-----------
fix RSSPage to use correct URI

Modified Paths:
--------------
    hiki/branches/rack/hiki/farm/dispatcher.rb
    hiki/branches/rack/hiki/farm/page.rb
    hiki/branches/rack/hiki/farm.rb

Modified: hiki/branches/rack/hiki/farm/dispatcher.rb
===================================================================
--- hiki/branches/rack/hiki/farm/dispatcher.rb	2009-11-30 15:35:21 UTC (rev 1096)
+++ hiki/branches/rack/hiki/farm/dispatcher.rb	2009-12-02 13:14:43 UTC (rev 1097)
@@ -6,7 +6,7 @@
         request = Hiki::Request.new(env)
         conf = ::Hiki::Farm::Config.load(File.join(Hiki::PATH, 'hikifarm_conf.rb'))
         case request.path_info
-        when '/'
+        when '/', "/#{Hiki::Farm::RSSPage.page_name}"
           Hiki::Farm::App.new(conf).call(env)
         when %r!\A/(\w+)/!
           Hiki::App.new(File.join(conf.farm_root, $1, 'hikiconf.rb')).call(env)

Modified: hiki/branches/rack/hiki/farm/page.rb
===================================================================
--- hiki/branches/rack/hiki/farm/page.rb	2009-11-30 15:35:21 UTC (rev 1096)
+++ hiki/branches/rack/hiki/farm/page.rb	2009-12-02 13:14:43 UTC (rev 1097)
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 require 'erb'
+require 'uri'
 require 'hiki/util'
 
 module Hiki
@@ -79,7 +80,7 @@
       end
 
       def rss_href
-        "#{@hikifarm_uri}#{@manager.command_query(Hiki::Farm::RSSPage.command_name)}"
+        URI.join(@hikifarm_uri, RSSPage.page_name)
       end
 
       def template_name
@@ -105,7 +106,6 @@
       end
     end
 
-    # TODO: refactor
     class RSSPage
       include ::Hiki::Util
 
@@ -113,11 +113,16 @@
         def command_name
           'rss'
         end
+
+        def page_name
+          'hikifarm.rss'
+        end
       end
 
-      def initialize(conf, manager)
+      def initialize(conf, manager, hikifarm_uri)
         @conf = conf
         @manager = manager
+        @hikifarm_uri = hikifarm_uri
       end
 
       def to_s
@@ -129,17 +134,17 @@
       def make_rss
         require 'rss'
         rss = RSS::Maker.make("1.0") do |maker|
-          maker.channel.about = "http://example.com/index.rdf"
+          maker.channel.about = URI.join(@hikifarm_uri, self.class.page_name).to_s
           maker.channel.title =****@conf*****
           maker.channel.description =****@conf*****_description
-          maker.channel.link = "http://example.com/"
+          maker.channel.link = @hikifarm_uri
 
           maker.items.do_sort  = true
           maker.items.max_size = 15
 
           @manager.wikilist.each do |wiki|
             maker.items.new_item do |item|
-              item.link  = "http://example.com/article.html"
+              item.link  = URI.join(@hikifarm_uri, wiki.name)
               item.title = wiki.title
               item.date  = wiki.mtime
               item.description = wiki.description

Modified: hiki/branches/rack/hiki/farm.rb
===================================================================
--- hiki/branches/rack/hiki/farm.rb	2009-11-30 15:35:21 UTC (rev 1096)
+++ hiki/branches/rack/hiki/farm.rb	2009-12-02 13:14:43 UTC (rev 1097)
@@ -37,11 +37,11 @@
 
       def run(manager, request)
         case
-        when request.get? && %r!\A/hikifarm.rss\z! =~ request.path_info
-          body = ::Hiki::Farm::RSSPage.new(@conf, manager).to_s
+        when request.get? && %r!\A/#{::Hiki::Farm::RSSPage.page_name}\z! =~ request.path_info
+          body = ::Hiki::Farm::RSSPage.new(@conf, manager, File.dirname(request.url)).to_s
           ::Hiki::Response.new(body, 200, { })
         when request.get? && 'rss' == request.params[manager.command_key]
-          body = ::Hiki::Farm::RSSPage.new(@conf, manager).to_s
+          body = ::Hiki::Farm::RSSPage.new(@conf, manager, File.dirname(request.url)).to_s
           ::Hiki::Response.new(body, 200, { })
         when request.post? && request.params['wiki'] && !request.params['wiki'].empty?
           begin




Hiki-cvs メーリングリストの案内
Back to archive index