1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/rss/maker/0.9.rb
kou 0a93165e16 * lib/rss/maker/0.9.rb: supported RSS::Maker.make("0.91"). Now,
"0.9" is just alias of "0.91."
* test/rss/test_maker_0.9.rb: make("0.9") -> maker("0.91").
* test/rss/test_to_s.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-27 08:43:18 +00:00

226 lines
5.1 KiB
Ruby

require "rss/0.9"
require "rss/maker/base"
module RSS
module Maker
class RSS09 < RSSBase
def initialize(rss_version="0.91")
super
end
def to_rss
rss = Rss.new(@rss_version, @version, @encoding, @standalone)
setup_xml_stylesheets(rss)
setup_channel(rss)
setup_other_elements(rss)
if rss.channel
rss
else
nil
end
end
private
def setup_channel(rss)
@channel.to_rss(rss)
end
class Channel < ChannelBase
def to_rss(rss)
channel = Rss::Channel.new
set = setup_values(channel)
if set
rss.channel = channel
setup_items(rss)
setup_image(rss)
setup_textinput(rss)
setup_other_elements(rss)
if rss.channel.image
rss
else
nil
end
end
end
def have_required_values?
@title and @link and @description and @language
end
private
def setup_items(rss)
@maker.items.to_rss(rss)
end
def setup_image(rss)
@maker.image.to_rss(rss)
end
def setup_textinput(rss)
@maker.textinput.to_rss(rss)
end
def variables
super + ["pubDate"]
end
class SkipDays < SkipDaysBase
def to_rss(rss, channel)
unless @days.empty?
skipDays = Rss::Channel::SkipDays.new
channel.skipDays = skipDays
@days.each do |day|
day.to_rss(rss, skipDays.days)
end
end
end
class Day < DayBase
def to_rss(rss, days)
day = Rss::Channel::SkipDays::Day.new
set = setup_values(day)
if set
days << day
setup_other_elements(rss)
end
end
def have_required_values?
@content
end
end
end
class SkipHours < SkipHoursBase
def to_rss(rss, channel)
unless @hours.empty?
skipHours = Rss::Channel::SkipHours.new
channel.skipHours = skipHours
@hours.each do |hour|
hour.to_rss(rss, skipHours.hours)
end
end
end
class Hour < HourBase
def to_rss(rss, hours)
hour = Rss::Channel::SkipHours::Hour.new
set = setup_values(hour)
if set
hours << hour
setup_other_elements(rss)
end
end
def have_required_values?
@content
end
end
end
class Cloud < CloudBase
def to_rss(*args)
end
end
class Categories < CategoriesBase
def to_rss(*args)
end
class Category < CategoryBase
end
end
end
class Image < ImageBase
def to_rss(rss)
image = Rss::Channel::Image.new
set = setup_values(image)
if set
image.link = link
rss.channel.image = image
setup_other_elements(rss)
end
end
def have_required_values?
@url and @title and link
end
end
class Items < ItemsBase
def to_rss(rss)
if rss.channel
normalize.each do |item|
item.to_rss(rss)
end
setup_other_elements(rss)
end
end
class Item < ItemBase
def to_rss(rss)
item = Rss::Channel::Item.new
set = setup_values(item)
if set
rss.items << item
setup_other_elements(rss)
end
end
private
def have_required_values?
@title and @link
end
class Guid < GuidBase
def to_rss(*args)
end
end
class Enclosure < EnclosureBase
def to_rss(*args)
end
end
class Source < SourceBase
def to_rss(*args)
end
end
class Categories < CategoriesBase
def to_rss(*args)
end
class Category < CategoryBase
end
end
end
end
class Textinput < TextinputBase
def to_rss(rss)
textInput = Rss::Channel::TextInput.new
set = setup_values(textInput)
if set
rss.channel.textInput = textInput
setup_other_elements(rss)
end
end
private
def have_required_values?
@title and @description and @name and @link
end
end
end
add_maker(filename_to_version(__FILE__), RSS09)
add_maker(filename_to_version(__FILE__) + "1", RSS09)
end
end