1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb, NEWS:

0.2.3 -> 0.2.4.

* lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:
  fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some
  elements if description is missed.
  Reported by Michael Auzenne. Thanks!!!

* lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:
  RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kou 2008-02-11 08:26:47 +00:00
parent 52273f82e5
commit d7a4285e9d
13 changed files with 92 additions and 35 deletions

View file

@ -1,3 +1,16 @@
Mon Feb 11 17:25:21 2008 Kouhei Sutou <kou@cozmixng.org>
* lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb, NEWS:
0.2.3 -> 0.2.4.
* lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:
fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some
elements if description is missed.
Reported by Michael Auzenne. Thanks!!!
* lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:
RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.
Mon Feb 11 16:57:00 2008 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
* ChangeLog: format-time-string under C locale. [ruby-dev:33261]

2
NEWS
View file

@ -85,7 +85,7 @@ with all sufficient information, see the ChangeLog file.
* rss
* 0.1.6 -> 0.2.3
* 0.1.6 -> 0.2.4
* Fix image module URI

View file

@ -8,15 +8,15 @@ module RSS
def make(version, &block)
m = maker(version)
raise UnsupportedMakerVersionError.new(version) if m.nil?
m.make(&block)
m[:maker].make(m[:version], &block)
end
def maker(version)
MAKERS[version]
end
def add_maker(version, maker)
MAKERS[version] = maker
def add_maker(version, normalized_version, maker)
MAKERS[version] = {:maker => maker, :version => normalized_version}
end
def versions
@ -24,7 +24,7 @@ module RSS
end
def makers
MAKERS.values.uniq
MAKERS.values.collect {|info| info[:maker]}.uniq
end
end
end

View file

@ -7,7 +7,7 @@ module RSS
class RSS09 < RSSBase
def initialize(feed_version="0.91")
def initialize(feed_version="0.92")
super
@feed_type = "rss"
end
@ -258,23 +258,27 @@ module RSS
def to_feed(rss)
item = Rss::Channel::Item.new
set = setup_values(item)
if set or title {|t| t.have_required_values?}
_not_set_required_variables = not_set_required_variables
if _not_set_required_variables.empty?
rss.items << item
set_parent(item, rss.channel)
setup_other_elements(rss, item)
elsif variable_is_set?
raise NotSetError.new("maker.items", not_set_required_variables)
raise NotSetError.new("maker.items", _not_set_required_variables)
end
end
private
def required_variable_names
%w(link)
[]
end
def not_set_required_variables
vars = super
if @maker.feed_version == "0.91"
vars << "title" unless title {|t| t.have_required_values?}
vars << "link" unless link {|l| l.have_required_values?}
end
vars
end
@ -454,8 +458,10 @@ module RSS
end
end
add_maker("0.9", RSS09)
add_maker("0.91", RSS09)
add_maker("rss0.91", RSS09)
add_maker("0.9", "0.92", RSS09)
add_maker("0.91", "0.91", RSS09)
add_maker("0.92", "0.92", RSS09)
add_maker("rss0.91", "0.91", RSS09)
add_maker("rss0.92", "0.92", RSS09)
end
end

View file

@ -7,8 +7,8 @@ module RSS
class RSS10 < RSSBase
def initialize
super("1.0")
def initialize(feed_version="1.0")
super
@feed_type = "rss"
end
@ -428,7 +428,7 @@ module RSS
end
end
add_maker("1.0", RSS10)
add_maker("rss1.0", RSS10)
add_maker("1.0", "1.0", RSS10)
add_maker("rss1.0", "1.0", RSS10)
end
end

View file

@ -93,7 +93,16 @@ module RSS
class Item < RSS09::Items::Item
private
def required_variable_names
%w(title description)
[]
end
def not_set_required_variables
vars = super
if !title {|t| t.have_required_values?} and
!description {|d| d.have_required_values?}
vars << "title or description"
end
vars
end
def variables
@ -208,7 +217,7 @@ module RSS
end
end
add_maker("2.0", RSS20)
add_maker("rss2.0", RSS20)
add_maker("2.0", "2.0", RSS20)
add_maker("rss2.0", "2.0", RSS20)
end
end

View file

@ -357,8 +357,8 @@ module RSS
class RSSBase < Base
class << self
def make(&block)
new.make(&block)
def make(version, &block)
new(version).make(&block)
end
end

View file

@ -5,8 +5,8 @@ module RSS
module Maker
module Atom
class Entry < RSSBase
def initialize
super("1.0")
def initialize(feed_version="1.0")
super
@feed_type = "atom"
@feed_subtype = "entry"
end
@ -157,7 +157,7 @@ module RSS
end
end
add_maker("atom:entry", Atom::Entry)
add_maker("atom1.0:entry", Atom::Entry)
add_maker("atom:entry", "1.0", Atom::Entry)
add_maker("atom1.0:entry", "1.0", Atom::Entry)
end
end

View file

@ -4,8 +4,8 @@ module RSS
module Maker
module Atom
class Feed < RSSBase
def initialize
super("1.0")
def initialize(feed_version="1.0")
super
@feed_type = "atom"
@feed_subtype = "feed"
end
@ -421,9 +421,9 @@ module RSS
end
end
add_maker("atom", Atom::Feed)
add_maker("atom:feed", Atom::Feed)
add_maker("atom1.0", Atom::Feed)
add_maker("atom1.0:feed", Atom::Feed)
add_maker("atom", "1.0", Atom::Feed)
add_maker("atom:feed", "1.0", Atom::Feed)
add_maker("atom1.0", "1.0", Atom::Feed)
add_maker("atom1.0:feed", "1.0", Atom::Feed)
end
end

View file

@ -52,7 +52,7 @@ require "rss/xml-stylesheet"
module RSS
VERSION = "0.2.3"
VERSION = "0.2.4"
URI = "http://purl.org/rss/1.0/"

View file

@ -13,7 +13,7 @@ module RSS
setup_dummy_channel(maker)
setup_dummy_image(maker)
end
assert_equal("0.91", rss.rss_version)
assert_equal("0.92", rss.rss_version)
rss = RSS::Maker.make("0.91") do |maker|
setup_dummy_channel(maker)

View file

@ -430,6 +430,35 @@ module RSS
test_items(false)
end
def test_pubDate_without_description
title = "TITLE"
link = "http://hoge.com/"
description = "text hoge fuga"
author = "oprah@oxygen.net"
pubDate = Time.now
rss = RSS::Maker.make("2.0") do |maker|
setup_dummy_channel(maker)
maker.items.new_item do |item|
item.title = title
item.link = link
# item.description = description
item.author = author
item.pubDate = pubDate
end
end
assert_equal(1, rss.items.size)
rss.channel.items.each_with_index do |item, i|
assert_equal(title, item.title)
assert_equal(link, item.link)
# assert_equal(description, item.description)
assert_equal(author, item.author)
assert_equal(pubDate, item.pubDate)
assert_equal(pubDate, item.date)
end
end
def test_guid
isPermaLink = "true"
content = "http://inessential.com/2002/09/01.php#a2"

View file

@ -3,7 +3,7 @@ require "rss-testcase"
module RSS
class TestVersion < TestCase
def test_version
assert_equal("0.2.3", ::RSS::VERSION)
assert_equal("0.2.4", ::RSS::VERSION)
end
end
end