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/