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:
parent
52273f82e5
commit
d7a4285e9d
13 changed files with 92 additions and 35 deletions
13
ChangeLog
13
ChangeLog
|
@ -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
2
NEWS
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/"
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue