1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
require "rss/2.0"
require "rss/maker/0.9"
module RSS
module Maker
class RSS20 < RSS09
def initialize(rss_version="2.0")
super
end
class Channel < RSS09::Channel
def have_required_values?
@title and @link and @description
end
def required_variable_names
%w(title link description)
end
class SkipDays < RSS09::Channel::SkipDays
class Day < RSS09::Channel::SkipDays::Day
end
end
class SkipHours < RSS09::Channel::SkipHours
class Hour < RSS09::Channel::SkipHours::Hour
end
end
class Cloud < RSS09::Channel::Cloud
def to_rss(rss, channel)
cloud = Rss::Channel::Cloud.new
set = setup_values(cloud)
if set
channel.cloud = cloud
setup_other_elements(rss)
end
end
def have_required_values?
@domain and @port and @path and
@registerProcedure and @protocol
end
end
class Categories < RSS09::Channel::Categories
def to_rss(rss, channel)
@categories.each do |category|
category.to_rss(rss, channel)
end
end
class Category < RSS09::Channel::Categories::Category
def to_rss(rss, channel)
category = Rss::Channel::Category.new
set = setup_values(category)
if set
channel.categories << category
setup_other_elements(rss)
end
end
def have_required_values?
@content
end
end
end
end
class Image < RSS09::Image
end
class Items < RSS09::Items
class Item < RSS09::Items::Item
def have_required_values?
@title or @description
end
private
def variables
super + ["pubDate"]
end
class Guid < RSS09::Items::Item::Guid
def to_rss(rss, item)
guid = Rss::Channel::Item::Guid.new
set = setup_values(guid)
if set
item.guid = guid
setup_other_elements(rss)
end
end
def have_required_values?
@content
end
end
class Enclosure < RSS09::Items::Item::Enclosure
def to_rss(rss, item)
enclosure = Rss::Channel::Item::Enclosure.new
set = setup_values(enclosure)
if set
item.enclosure = enclosure
setup_other_elements(rss)
end
end
def have_required_values?
@url and @length and @type
end
end
class Source < RSS09::Items::Item::Source
def to_rss(rss, item)
source = Rss::Channel::Item::Source.new
set = setup_values(source)
if set
item.source = source
setup_other_elements(rss)
end
end
def have_required_values?
@url and @content
end
end
class Categories < RSS09::Items::Item::Categories
def to_rss(rss, item)
@categories.each do |category|
category.to_rss(rss, item)
end
end
class Category < RSS09::Items::Item::Categories::Category
def to_rss(rss, item)
category = Rss::Channel::Item::Category.new
set = setup_values(category)
if set
item.categories << category
setup_other_elements(rss)
end
end
def have_required_values?
@content
end
end
end
end
end
class Textinput < RSS09::Textinput
end
end
add_maker(filename_to_version(__FILE__), RSS20)
end
end
|