rubysl-rss 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/LICENSE +25 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/lib/rss.rb +1 -0
- data/lib/rss/0.9.rb +428 -0
- data/lib/rss/1.0.rb +452 -0
- data/lib/rss/2.0.rb +111 -0
- data/lib/rss/atom.rb +749 -0
- data/lib/rss/content.rb +31 -0
- data/lib/rss/content/1.0.rb +10 -0
- data/lib/rss/content/2.0.rb +12 -0
- data/lib/rss/converter.rb +162 -0
- data/lib/rss/dublincore.rb +161 -0
- data/lib/rss/dublincore/1.0.rb +13 -0
- data/lib/rss/dublincore/2.0.rb +13 -0
- data/lib/rss/dublincore/atom.rb +17 -0
- data/lib/rss/image.rb +193 -0
- data/lib/rss/itunes.rb +410 -0
- data/lib/rss/maker.rb +44 -0
- data/lib/rss/maker/0.9.rb +467 -0
- data/lib/rss/maker/1.0.rb +434 -0
- data/lib/rss/maker/2.0.rb +223 -0
- data/lib/rss/maker/atom.rb +172 -0
- data/lib/rss/maker/base.rb +868 -0
- data/lib/rss/maker/content.rb +21 -0
- data/lib/rss/maker/dublincore.rb +124 -0
- data/lib/rss/maker/entry.rb +163 -0
- data/lib/rss/maker/feed.rb +429 -0
- data/lib/rss/maker/image.rb +111 -0
- data/lib/rss/maker/itunes.rb +242 -0
- data/lib/rss/maker/slash.rb +33 -0
- data/lib/rss/maker/syndication.rb +18 -0
- data/lib/rss/maker/taxonomy.rb +118 -0
- data/lib/rss/maker/trackback.rb +61 -0
- data/lib/rss/parser.rb +541 -0
- data/lib/rss/rexmlparser.rb +54 -0
- data/lib/rss/rss.rb +1312 -0
- data/lib/rss/slash.rb +49 -0
- data/lib/rss/syndication.rb +67 -0
- data/lib/rss/taxonomy.rb +145 -0
- data/lib/rss/trackback.rb +288 -0
- data/lib/rss/utils.rb +111 -0
- data/lib/rss/xml-stylesheet.rb +105 -0
- data/lib/rss/xml.rb +71 -0
- data/lib/rss/xmlparser.rb +93 -0
- data/lib/rss/xmlscanner.rb +121 -0
- data/lib/rubysl/rss.rb +2 -0
- data/lib/rubysl/rss/rss.rb +19 -0
- data/lib/rubysl/rss/version.rb +5 -0
- data/rubysl-rss.gemspec +23 -0
- metadata +153 -0
@@ -0,0 +1,434 @@
|
|
1
|
+
require "rss/1.0"
|
2
|
+
|
3
|
+
require "rss/maker/base"
|
4
|
+
|
5
|
+
module RSS
|
6
|
+
module Maker
|
7
|
+
|
8
|
+
class RSS10 < RSSBase
|
9
|
+
|
10
|
+
def initialize(feed_version="1.0")
|
11
|
+
super
|
12
|
+
@feed_type = "rss"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
def make_feed
|
17
|
+
RDF.new(@version, @encoding, @standalone)
|
18
|
+
end
|
19
|
+
|
20
|
+
def setup_elements(rss)
|
21
|
+
setup_channel(rss)
|
22
|
+
setup_image(rss)
|
23
|
+
setup_items(rss)
|
24
|
+
setup_textinput(rss)
|
25
|
+
end
|
26
|
+
|
27
|
+
class Channel < ChannelBase
|
28
|
+
|
29
|
+
def to_feed(rss)
|
30
|
+
set_default_values do
|
31
|
+
_not_set_required_variables = not_set_required_variables
|
32
|
+
if _not_set_required_variables.empty?
|
33
|
+
channel = RDF::Channel.new(@about)
|
34
|
+
set = setup_values(channel)
|
35
|
+
channel.dc_dates.clear
|
36
|
+
rss.channel = channel
|
37
|
+
set_parent(channel, rss)
|
38
|
+
setup_items(rss)
|
39
|
+
setup_image(rss)
|
40
|
+
setup_textinput(rss)
|
41
|
+
setup_other_elements(rss, channel)
|
42
|
+
else
|
43
|
+
raise NotSetError.new("maker.channel", _not_set_required_variables)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
def setup_items(rss)
|
50
|
+
items = RDF::Channel::Items.new
|
51
|
+
seq = items.Seq
|
52
|
+
set_parent(items, seq)
|
53
|
+
target_items = @maker.items.normalize
|
54
|
+
raise NotSetError.new("maker", ["items"]) if target_items.empty?
|
55
|
+
target_items.each do |item|
|
56
|
+
li = RDF::Channel::Items::Seq::Li.new(item.link)
|
57
|
+
seq.lis << li
|
58
|
+
set_parent(li, seq)
|
59
|
+
end
|
60
|
+
rss.channel.items = items
|
61
|
+
set_parent(rss.channel, items)
|
62
|
+
end
|
63
|
+
|
64
|
+
def setup_image(rss)
|
65
|
+
if @maker.image.have_required_values?
|
66
|
+
image = RDF::Channel::Image.new(@maker.image.url)
|
67
|
+
rss.channel.image = image
|
68
|
+
set_parent(image, rss.channel)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def setup_textinput(rss)
|
73
|
+
if @maker.textinput.have_required_values?
|
74
|
+
textinput = RDF::Channel::Textinput.new(@maker.textinput.link)
|
75
|
+
rss.channel.textinput = textinput
|
76
|
+
set_parent(textinput, rss.channel)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def required_variable_names
|
81
|
+
%w(about link)
|
82
|
+
end
|
83
|
+
|
84
|
+
def not_set_required_variables
|
85
|
+
vars = super
|
86
|
+
vars << "description" unless description {|d| d.have_required_values?}
|
87
|
+
vars << "title" unless title {|t| t.have_required_values?}
|
88
|
+
vars
|
89
|
+
end
|
90
|
+
|
91
|
+
class SkipDays < SkipDaysBase
|
92
|
+
def to_feed(*args)
|
93
|
+
end
|
94
|
+
|
95
|
+
class Day < DayBase
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class SkipHours < SkipHoursBase
|
100
|
+
def to_feed(*args)
|
101
|
+
end
|
102
|
+
|
103
|
+
class Hour < HourBase
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
class Cloud < CloudBase
|
108
|
+
def to_feed(*args)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
class Categories < CategoriesBase
|
113
|
+
def to_feed(*args)
|
114
|
+
end
|
115
|
+
|
116
|
+
class Category < CategoryBase
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
class Links < LinksBase
|
121
|
+
def to_feed(rss, channel)
|
122
|
+
return if @links.empty?
|
123
|
+
@links.first.to_feed(rss, channel)
|
124
|
+
end
|
125
|
+
|
126
|
+
class Link < LinkBase
|
127
|
+
def to_feed(rss, channel)
|
128
|
+
if have_required_values?
|
129
|
+
channel.link = href
|
130
|
+
else
|
131
|
+
raise NotSetError.new("maker.channel.link",
|
132
|
+
not_set_required_variables)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
private
|
137
|
+
def required_variable_names
|
138
|
+
%w(href)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
class Authors < AuthorsBase
|
144
|
+
def to_feed(rss, channel)
|
145
|
+
end
|
146
|
+
|
147
|
+
class Author < AuthorBase
|
148
|
+
def to_feed(rss, channel)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
class Contributors < ContributorsBase
|
154
|
+
def to_feed(rss, channel)
|
155
|
+
end
|
156
|
+
|
157
|
+
class Contributor < ContributorBase
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
class Generator < GeneratorBase
|
162
|
+
def to_feed(rss, channel)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
class Copyright < CopyrightBase
|
167
|
+
def to_feed(rss, channel)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class Description < DescriptionBase
|
172
|
+
def to_feed(rss, channel)
|
173
|
+
channel.description = content if have_required_values?
|
174
|
+
end
|
175
|
+
|
176
|
+
private
|
177
|
+
def required_variable_names
|
178
|
+
%w(content)
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
class Title < TitleBase
|
183
|
+
def to_feed(rss, channel)
|
184
|
+
channel.title = content if have_required_values?
|
185
|
+
end
|
186
|
+
|
187
|
+
private
|
188
|
+
def required_variable_names
|
189
|
+
%w(content)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
class Image < ImageBase
|
195
|
+
def to_feed(rss)
|
196
|
+
if @url
|
197
|
+
image = RDF::Image.new(@url)
|
198
|
+
set = setup_values(image)
|
199
|
+
if set
|
200
|
+
rss.image = image
|
201
|
+
set_parent(image, rss)
|
202
|
+
setup_other_elements(rss, image)
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def have_required_values?
|
208
|
+
super and @maker.channel.have_required_values?
|
209
|
+
end
|
210
|
+
|
211
|
+
private
|
212
|
+
def variables
|
213
|
+
super + ["link"]
|
214
|
+
end
|
215
|
+
|
216
|
+
def required_variable_names
|
217
|
+
%w(url title link)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
class Items < ItemsBase
|
222
|
+
def to_feed(rss)
|
223
|
+
if rss.channel
|
224
|
+
normalize.each do |item|
|
225
|
+
item.to_feed(rss)
|
226
|
+
end
|
227
|
+
setup_other_elements(rss, rss.items)
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
class Item < ItemBase
|
232
|
+
def to_feed(rss)
|
233
|
+
set_default_values do
|
234
|
+
item = RDF::Item.new(link)
|
235
|
+
set = setup_values(item)
|
236
|
+
if set
|
237
|
+
item.dc_dates.clear
|
238
|
+
rss.items << item
|
239
|
+
set_parent(item, rss)
|
240
|
+
setup_other_elements(rss, item)
|
241
|
+
elsif !have_required_values?
|
242
|
+
raise NotSetError.new("maker.item", not_set_required_variables)
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
private
|
248
|
+
def required_variable_names
|
249
|
+
%w(link)
|
250
|
+
end
|
251
|
+
|
252
|
+
def variables
|
253
|
+
super + %w(link)
|
254
|
+
end
|
255
|
+
|
256
|
+
def not_set_required_variables
|
257
|
+
set_default_values do
|
258
|
+
vars = super
|
259
|
+
vars << "title" unless title {|t| t.have_required_values?}
|
260
|
+
vars
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
class Guid < GuidBase
|
265
|
+
def to_feed(*args)
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
class Enclosure < EnclosureBase
|
270
|
+
def to_feed(*args)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
class Source < SourceBase
|
275
|
+
def to_feed(*args)
|
276
|
+
end
|
277
|
+
|
278
|
+
class Authors < AuthorsBase
|
279
|
+
def to_feed(*args)
|
280
|
+
end
|
281
|
+
|
282
|
+
class Author < AuthorBase
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
class Categories < CategoriesBase
|
287
|
+
def to_feed(*args)
|
288
|
+
end
|
289
|
+
|
290
|
+
class Category < CategoryBase
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
class Contributors < ContributorsBase
|
295
|
+
def to_feed(*args)
|
296
|
+
end
|
297
|
+
|
298
|
+
class Contributor < ContributorBase
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
class Generator < GeneratorBase
|
303
|
+
def to_feed(*args)
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
class Icon < IconBase
|
308
|
+
def to_feed(*args)
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
312
|
+
class Links < LinksBase
|
313
|
+
def to_feed(*args)
|
314
|
+
end
|
315
|
+
|
316
|
+
class Link < LinkBase
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
class Logo < LogoBase
|
321
|
+
def to_feed(*args)
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
class Rights < RightsBase
|
326
|
+
def to_feed(*args)
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
class Subtitle < SubtitleBase
|
331
|
+
def to_feed(*args)
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
class Title < TitleBase
|
336
|
+
def to_feed(*args)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
class Categories < CategoriesBase
|
342
|
+
def to_feed(*args)
|
343
|
+
end
|
344
|
+
|
345
|
+
class Category < CategoryBase
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
class Authors < AuthorsBase
|
350
|
+
def to_feed(*args)
|
351
|
+
end
|
352
|
+
|
353
|
+
class Author < AuthorBase
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
class Links < LinksBase
|
358
|
+
def to_feed(*args)
|
359
|
+
end
|
360
|
+
|
361
|
+
class Link < LinkBase
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
class Contributors < ContributorsBase
|
366
|
+
def to_feed(rss, item)
|
367
|
+
end
|
368
|
+
|
369
|
+
class Contributor < ContributorBase
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
373
|
+
class Rights < RightsBase
|
374
|
+
def to_feed(rss, item)
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
class Description < DescriptionBase
|
379
|
+
def to_feed(rss, item)
|
380
|
+
item.description = content if have_required_values?
|
381
|
+
end
|
382
|
+
|
383
|
+
private
|
384
|
+
def required_variable_names
|
385
|
+
%w(content)
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
389
|
+
class Content < ContentBase
|
390
|
+
def to_feed(rss, item)
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
394
|
+
class Title < TitleBase
|
395
|
+
def to_feed(rss, item)
|
396
|
+
item.title = content if have_required_values?
|
397
|
+
end
|
398
|
+
|
399
|
+
private
|
400
|
+
def required_variable_names
|
401
|
+
%w(content)
|
402
|
+
end
|
403
|
+
end
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
407
|
+
class Textinput < TextinputBase
|
408
|
+
def to_feed(rss)
|
409
|
+
if @link
|
410
|
+
textinput = RDF::Textinput.new(@link)
|
411
|
+
set = setup_values(textinput)
|
412
|
+
if set
|
413
|
+
rss.textinput = textinput
|
414
|
+
set_parent(textinput, rss)
|
415
|
+
setup_other_elements(rss, textinput)
|
416
|
+
end
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
def have_required_values?
|
421
|
+
super and @maker.channel.have_required_values?
|
422
|
+
end
|
423
|
+
|
424
|
+
private
|
425
|
+
def required_variable_names
|
426
|
+
%w(title description name link)
|
427
|
+
end
|
428
|
+
end
|
429
|
+
end
|
430
|
+
|
431
|
+
add_maker("1.0", "1.0", RSS10)
|
432
|
+
add_maker("rss1.0", "1.0", RSS10)
|
433
|
+
end
|
434
|
+
end
|
@@ -0,0 +1,223 @@
|
|
1
|
+
require "rss/2.0"
|
2
|
+
|
3
|
+
require "rss/maker/0.9"
|
4
|
+
|
5
|
+
module RSS
|
6
|
+
module Maker
|
7
|
+
|
8
|
+
class RSS20 < RSS09
|
9
|
+
|
10
|
+
def initialize(feed_version="2.0")
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
class Channel < RSS09::Channel
|
15
|
+
|
16
|
+
private
|
17
|
+
def required_variable_names
|
18
|
+
%w(link)
|
19
|
+
end
|
20
|
+
|
21
|
+
class SkipDays < RSS09::Channel::SkipDays
|
22
|
+
class Day < RSS09::Channel::SkipDays::Day
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class SkipHours < RSS09::Channel::SkipHours
|
27
|
+
class Hour < RSS09::Channel::SkipHours::Hour
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class Cloud < RSS09::Channel::Cloud
|
32
|
+
def to_feed(rss, channel)
|
33
|
+
cloud = Rss::Channel::Cloud.new
|
34
|
+
set = setup_values(cloud)
|
35
|
+
if set
|
36
|
+
channel.cloud = cloud
|
37
|
+
set_parent(cloud, channel)
|
38
|
+
setup_other_elements(rss, cloud)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
def required_variable_names
|
44
|
+
%w(domain port path registerProcedure protocol)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Categories < RSS09::Channel::Categories
|
49
|
+
def to_feed(rss, channel)
|
50
|
+
@categories.each do |category|
|
51
|
+
category.to_feed(rss, channel)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Category < RSS09::Channel::Categories::Category
|
56
|
+
def to_feed(rss, channel)
|
57
|
+
category = Rss::Channel::Category.new
|
58
|
+
set = setup_values(category)
|
59
|
+
if set
|
60
|
+
channel.categories << category
|
61
|
+
set_parent(category, channel)
|
62
|
+
setup_other_elements(rss, category)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def required_variable_names
|
68
|
+
%w(content)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class Generator < GeneratorBase
|
74
|
+
def to_feed(rss, channel)
|
75
|
+
channel.generator = content
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
def required_variable_names
|
80
|
+
%w(content)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class Image < RSS09::Image
|
86
|
+
private
|
87
|
+
def required_element?
|
88
|
+
false
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
class Items < RSS09::Items
|
93
|
+
class Item < RSS09::Items::Item
|
94
|
+
private
|
95
|
+
def required_variable_names
|
96
|
+
[]
|
97
|
+
end
|
98
|
+
|
99
|
+
def not_set_required_variables
|
100
|
+
vars = super
|
101
|
+
if !title {|t| t.have_required_values?} and
|
102
|
+
!description {|d| d.have_required_values?}
|
103
|
+
vars << "title or description"
|
104
|
+
end
|
105
|
+
vars
|
106
|
+
end
|
107
|
+
|
108
|
+
def variables
|
109
|
+
super + ["pubDate"]
|
110
|
+
end
|
111
|
+
|
112
|
+
class Guid < RSS09::Items::Item::Guid
|
113
|
+
def to_feed(rss, item)
|
114
|
+
guid = Rss::Channel::Item::Guid.new
|
115
|
+
set = setup_values(guid)
|
116
|
+
if set
|
117
|
+
item.guid = guid
|
118
|
+
set_parent(guid, item)
|
119
|
+
setup_other_elements(rss, guid)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
private
|
124
|
+
def required_variable_names
|
125
|
+
%w(content)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
class Enclosure < RSS09::Items::Item::Enclosure
|
130
|
+
def to_feed(rss, item)
|
131
|
+
enclosure = Rss::Channel::Item::Enclosure.new
|
132
|
+
set = setup_values(enclosure)
|
133
|
+
if set
|
134
|
+
item.enclosure = enclosure
|
135
|
+
set_parent(enclosure, item)
|
136
|
+
setup_other_elements(rss, enclosure)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
private
|
141
|
+
def required_variable_names
|
142
|
+
%w(url length type)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
class Source < RSS09::Items::Item::Source
|
147
|
+
def to_feed(rss, item)
|
148
|
+
source = Rss::Channel::Item::Source.new
|
149
|
+
set = setup_values(source)
|
150
|
+
if set
|
151
|
+
item.source = source
|
152
|
+
set_parent(source, item)
|
153
|
+
setup_other_elements(rss, source)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
private
|
158
|
+
def required_variable_names
|
159
|
+
%w(url content)
|
160
|
+
end
|
161
|
+
|
162
|
+
class Links < RSS09::Items::Item::Source::Links
|
163
|
+
def to_feed(rss, source)
|
164
|
+
return if @links.empty?
|
165
|
+
@links.first.to_feed(rss, source)
|
166
|
+
end
|
167
|
+
|
168
|
+
class Link < RSS09::Items::Item::Source::Links::Link
|
169
|
+
def to_feed(rss, source)
|
170
|
+
source.url = href
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
class Categories < RSS09::Items::Item::Categories
|
177
|
+
def to_feed(rss, item)
|
178
|
+
@categories.each do |category|
|
179
|
+
category.to_feed(rss, item)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
class Category < RSS09::Items::Item::Categories::Category
|
184
|
+
def to_feed(rss, item)
|
185
|
+
category = Rss::Channel::Item::Category.new
|
186
|
+
set = setup_values(category)
|
187
|
+
if set
|
188
|
+
item.categories << category
|
189
|
+
set_parent(category, item)
|
190
|
+
setup_other_elements(rss)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
private
|
195
|
+
def required_variable_names
|
196
|
+
%w(content)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
class Authors < RSS09::Items::Item::Authors
|
202
|
+
def to_feed(rss, item)
|
203
|
+
return if @authors.empty?
|
204
|
+
@authors.first.to_feed(rss, item)
|
205
|
+
end
|
206
|
+
|
207
|
+
class Author < RSS09::Items::Item::Authors::Author
|
208
|
+
def to_feed(rss, item)
|
209
|
+
item.author = name
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
class Textinput < RSS09::Textinput
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
add_maker("2.0", "2.0", RSS20)
|
221
|
+
add_maker("rss2.0", "2.0", RSS20)
|
222
|
+
end
|
223
|
+
end
|