diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-12 14:52:11 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-12 14:52:11 +0000 |
commit | 06dfb68d5465a42857842e549349d243b66205c2 (patch) | |
tree | 7e238d3a446521501a8e7ebeb5b08200cd73ef5c /lib | |
parent | f6f3d1bc0e24cca8e369b09c68c26813a414248a (diff) | |
download | ruby-06dfb68d5465a42857842e549349d243b66205c2.tar.gz |
* lib/rss/maker/base.rb, test/rss/test_maker_0.9.rb:
accept any time format in maker. [ruby-core:26923]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rss/maker/base.rb | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/lib/rss/maker/base.rb b/lib/rss/maker/base.rb index 5d795443a4..88ea831164 100644 --- a/lib/rss/maker/base.rb +++ b/lib/rss/maker/base.rb @@ -358,7 +358,7 @@ module RSS :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 @@ module RSS 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 @@ module RSS 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 @@ module RSS 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 @@ module RSS 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 @@ module RSS 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 @@ module RSS 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 |