[前][次][番号順一覧][スレッド一覧]

ruby-changes:11791

From: kou <ko1@a...>
Date: Sat, 16 May 2009 18:01:34 +0900 (JST)
Subject: [ruby-changes:11791] Ruby:r23445 (trunk): * lib/rss/maker/base.rb, lib/rss/maker/1.0.rb, lib/rss/maker/feed.rb,

kou	2009-05-16 18:01:18 +0900 (Sat, 16 May 2009)

  New Revision: 23445

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23445

  Log:
    * lib/rss/maker/base.rb, lib/rss/maker/1.0.rb, lib/rss/maker/feed.rb,
      test/rss/test_maker_1.0.rb, test/rss/test_maker_atom_feed.rb:
      RSS 1.0 and Atom feed maker treat maker.channel.language as
      maker.channel.dc_language.

  Modified files:
    trunk/ChangeLog
    trunk/lib/rss/maker/1.0.rb
    trunk/lib/rss/maker/base.rb
    trunk/lib/rss/maker/feed.rb
    trunk/test/rss/test_maker_1.0.rb
    trunk/test/rss/test_maker_atom_feed.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23444)
+++ ChangeLog	(revision 23445)
@@ -1,3 +1,10 @@
+Sat May 16 18:02:16 2009  Kouhei Sutou  <kou@c...>
+
+	* lib/rss/maker/base.rb, lib/rss/maker/1.0.rb, lib/rss/maker/feed.rb,
+	test/rss/test_maker_1.0.rb, test/rss/test_maker_atom_feed.rb:
+	RSS 1.0 and Atom feed maker treat maker.channel.language as
+	maker.channel.dc_language.
+
 Sat May 16 17:57:39 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* ext/dl/lib/dl/callback.rb (DL#remove_callback_internal): ignore
Index: lib/rss/maker/1.0.rb
===================================================================
--- lib/rss/maker/1.0.rb	(revision 23444)
+++ lib/rss/maker/1.0.rb	(revision 23445)
@@ -25,6 +25,7 @@
       end
 
       class Channel < ChannelBase
+        include SetupDefaultLanguage
 
         def to_feed(rss)
           set_default_values do
Index: lib/rss/maker/feed.rb
===================================================================
--- lib/rss/maker/feed.rb	(revision 23444)
+++ lib/rss/maker/feed.rb	(revision 23445)
@@ -22,6 +22,8 @@
         end
 
         class Channel < ChannelBase
+          include SetupDefaultLanguage
+
           def to_feed(feed)
             set_default_values do
               setup_values(feed)
Index: lib/rss/maker/base.rb
===================================================================
--- lib/rss/maker/base.rb	(revision 23444)
+++ lib/rss/maker/base.rb	(revision 23445)
@@ -372,6 +372,25 @@
       end
     end
 
+    module SetupDefaultLanguage
+      private
+      def _set_default_values(&block)
+        keep = {
+          :dc_languages => dc_languages.to_a.dup,
+        }
+        _language = language
+        if _language and
+            !dc_languages.any? {|dc_language| dc_language.value == _language}
+          dc_language = self.class::DublinCoreLanguages::DublinCoreLanguage.new(self)
+          dc_language.value = _language.dup
+          dc_languages.unshift(dc_language)
+        end
+        super(&block)
+      ensure
+        dc_languages.replace(keep[:dc_languages])
+      end
+    end
+
     class RSSBase < Base
       class << self
         def make(*args, &block)
Index: test/rss/test_maker_atom_feed.rb
===================================================================
--- test/rss/test_maker_atom_feed.rb	(revision 23444)
+++ test/rss/test_maker_atom_feed.rb	(revision 23445)
@@ -392,5 +392,14 @@
         setup_dummy_item_atom(maker)
       end
     end
+
+    def test_language
+      language = "ja"
+      feed = Maker.make("atom") do |maker|
+        setup_dummy_channel_atom(maker)
+        maker.channel.language = "ja"
+      end
+      assert_equal(language, feed.dc_language)
+    end
   end
 end
Index: test/rss/test_maker_1.0.rb
===================================================================
--- test/rss/test_maker_1.0.rb	(revision 23444)
+++ test/rss/test_maker_1.0.rb	(revision 23445)
@@ -95,6 +95,26 @@
       assert_equal(rss.textinput.about, channel.textinput.resource)
     end
 
+    def test_channel_language
+      about = "http://hoge.com"
+      title = "fugafuga"
+      link = "http://hoge.com"
+      description = "fugafugafugafuga"
+      language = "ja"
+
+      rss = RSS::Maker.make("1.0") do |maker|
+        maker.channel.about = about
+        maker.channel.title = title
+        maker.channel.link = link
+        maker.channel.description = description
+        maker.channel.language = language
+
+        setup_dummy_item(maker)
+      end
+      channel = rss.channel
+      assert_equal(language, channel.dc_language)
+    end
+
     def test_not_valid_channel
       about = "http://hoge.com"
       title = "fugafuga"

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]