ruby-changes:14472
From: kou <ko1@a...>
Date: Wed, 13 Jan 2010 00:00:36 +0900 (JST)
Subject: [ruby-changes:14472] Ruby:r26307 (ruby_1_8): merge r26304.
kou 2010-01-13 00:00:22 +0900 (Wed, 13 Jan 2010) New Revision: 26307 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26307 Log: merge r26304. * lib/rss/maker/base.rb, test/rss/test_maker_0.9.rb: accept any time format in maker. [ruby-core:26923] Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/rss/maker/base.rb branches/ruby_1_8/test/rss/test_maker_0.9.rb Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 26306) +++ ruby_1_8/ChangeLog (revision 26307) @@ -1,3 +1,8 @@ +Tue Jan 12 23:58:27 2010 Kouhei Sutou <kou@c...> + + * lib/rss/maker/base.rb, test/rss/test_maker_0.9.rb: + accept any time format in maker. [ruby-core:26923] + Tue Jan 12 12:49:39 2010 Nobuyoshi Nakada <nobu@r...> * misc/ruby-mode.el (ruby-here-doc-beg-match): fix for here-doc Index: ruby_1_8/lib/rss/maker/base.rb =================================================================== --- ruby_1_8/lib/rss/maker/base.rb (revision 26306) +++ ruby_1_8/lib/rss/maker/base.rb (revision 26307) @@ -358,7 +358,7 @@ :date => date, :dc_dates => dc_dates.to_a.dup, } - _date = date + _date = _parse_date_if_needed(date) if _date and !dc_dates.any? {|dc_date| dc_date.value == _date} dc_date = self.class::DublinCoreDates::DublinCoreDate.new(self) dc_date.value = _date.dup @@ -370,6 +370,11 @@ date = keep[:date] dc_dates.replace(keep[:dc_dates]) end + + def _parse_date_if_needed(date_value) + date_value = Time.parse(date_value) if date_value.is_a?(String) + date_value + end end module SetupDefaultLanguage @@ -503,12 +508,24 @@ end %w(id about language - managingEditor webMaster rating docs date - lastBuildDate ttl).each do |element| + managingEditor webMaster rating docs ttl).each do |element| attr_accessor element add_need_initialize_variable(element) end + %w(date lastBuildDate).each do |date_element| + attr_reader date_element + add_need_initialize_variable(date_element) + end + + def date=(_date) + @date = _parse_date_if_needed(_date) + end + + def lastBuildDate=(_date) + @lastBuildDate = _parse_date_if_needed(_date) + end + def pubDate date end @@ -703,11 +720,20 @@ def_classed_elements(name, attribute) end - %w(date comments id published).each do |element| + %w(comments id published).each do |element| attr_accessor element add_need_initialize_variable(element) end + %w(date).each do |date_element| + attr_reader date_element + add_need_initialize_variable(date_element) + end + + def date=(_date) + @date = _parse_date_if_needed(_date) + end + def pubDate date end @@ -764,6 +790,8 @@ end class SourceBase < Base + include SetupDefaultDate + %w(authors categories contributors generator icon logo rights subtitle title).each do |name| def_classed_element(name) @@ -775,7 +803,7 @@ def_classed_elements(name, attribute) end - %w(id content date).each do |element| + %w(id content).each do |element| attr_accessor element add_need_initialize_variable(element) end @@ -783,6 +811,15 @@ alias_method(:url, :link) alias_method(:url=, :link=) + %w(date).each do |date_element| + attr_reader date_element + add_need_initialize_variable(date_element) + end + + def date=(_date) + @date = _parse_date_if_needed(_date) + end + def updated date end Index: ruby_1_8/test/rss/test_maker_0.9.rb =================================================================== --- ruby_1_8/test/rss/test_maker_0.9.rb (revision 26306) +++ ruby_1_8/test/rss/test_maker_0.9.rb (revision 26307) @@ -453,5 +453,22 @@ end assert_nil(rss.channel.textInput) end + + def test_date_in_string + date = Time.now + + rss = RSS::Maker.make("0.91") do |maker| + setup_dummy_channel(maker) + setup_dummy_image(maker) + + maker.items.new_item do |item| + item.title = "The first item" + item.link = "http://example.com/blog/1.html" + item.date = date.rfc822 + end + end + + assert_equal(date.iso8601, rss.items[0].date.iso8601) + end end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/