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

ruby-changes:11803

From: kou <ko1@a...>
Date: Sat, 16 May 2009 19:36:31 +0900 (JST)
Subject: [ruby-changes:11803] Ruby:r23458 (ruby_1_8): merge r23445.

kou	2009-05-16 19:36:17 +0900 (Sat, 16 May 2009)

  New Revision: 23458

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

  Log:
    merge r23445.
    * 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:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/lib/rss/maker/1.0.rb
    branches/ruby_1_8/lib/rss/maker/base.rb
    branches/ruby_1_8/lib/rss/maker/feed.rb
    branches/ruby_1_8/test/rss/test_maker_1.0.rb
    branches/ruby_1_8/test/rss/test_maker_atom_feed.rb

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 23457)
+++ ruby_1_8/ChangeLog	(revision 23458)
@@ -1,3 +1,10 @@
+Sat May 16 19:36:52 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 19:35:48 2009  Kouhei Sutou  <kou@c...>
 
 	* sample/rss/rss_recent.rb, sample/rss/list_description.rb: use
Index: ruby_1_8/lib/rss/maker/1.0.rb
===================================================================
--- ruby_1_8/lib/rss/maker/1.0.rb	(revision 23457)
+++ ruby_1_8/lib/rss/maker/1.0.rb	(revision 23458)
@@ -25,6 +25,7 @@
       end
 
       class Channel < ChannelBase
+        include SetupDefaultLanguage
 
         def to_feed(rss)
           set_default_values do
Index: ruby_1_8/lib/rss/maker/feed.rb
===================================================================
--- ruby_1_8/lib/rss/maker/feed.rb	(revision 23457)
+++ ruby_1_8/lib/rss/maker/feed.rb	(revision 23458)
@@ -22,6 +22,8 @@
         end
 
         class Channel < ChannelBase
+          include SetupDefaultLanguage
+
           def to_feed(feed)
             set_default_values do
               setup_values(feed)
Index: ruby_1_8/lib/rss/maker/base.rb
===================================================================
--- ruby_1_8/lib/rss/maker/base.rb	(revision 23457)
+++ ruby_1_8/lib/rss/maker/base.rb	(revision 23458)
@@ -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: ruby_1_8/test/rss/test_maker_atom_feed.rb
===================================================================
--- ruby_1_8/test/rss/test_maker_atom_feed.rb	(revision 23457)
+++ ruby_1_8/test/rss/test_maker_atom_feed.rb	(revision 23458)
@@ -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: ruby_1_8/test/rss/test_maker_1.0.rb
===================================================================
--- ruby_1_8/test/rss/test_maker_1.0.rb	(revision 23457)
+++ ruby_1_8/test/rss/test_maker_1.0.rb	(revision 23458)
@@ -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/

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