source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/rss/2.0.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 2.3 KB
Line 
1require "rss/0.9"
2
3module RSS
4
5 class Rss
6
7 class Channel
8
9 [
10 ["generator"],
11 ["ttl", :integer],
12 ].each do |name, type|
13 install_text_element(name, "", "?", name, type)
14 end
15
16 [
17 %w(category categories),
18 ].each do |name, plural_name|
19 install_have_children_element(name, "", "*", name, plural_name)
20 end
21
22 [
23 ["image", "?"],
24 ["language", "?"],
25 ].each do |name, occurs|
26 install_model(name, "", occurs)
27 end
28
29 Category = Item::Category
30
31 class Item
32
33 [
34 ["comments", "?"],
35 ["author", "?"],
36 ].each do |name, occurs|
37 install_text_element(name, "", occurs)
38 end
39
40 [
41 ["pubDate", '?'],
42 ].each do |name, occurs|
43 install_date_element(name, "", occurs, name, 'rfc822')
44 end
45 alias date pubDate
46 alias date= pubDate=
47
48 [
49 ["guid", '?'],
50 ].each do |name, occurs|
51 install_have_child_element(name, "", occurs)
52 end
53
54 private
55 alias _setup_maker_element setup_maker_element
56 def setup_maker_element(item)
57 _setup_maker_element(item)
58 @guid.setup_maker(item) if @guid
59 end
60
61 class Guid < Element
62
63 include RSS09
64
65 [
66 ["isPermaLink", "", false, :boolean]
67 ].each do |name, uri, required, type|
68 install_get_attribute(name, uri, required, type)
69 end
70
71 content_setup
72
73 def initialize(*args)
74 if Utils.element_initialize_arguments?(args)
75 super
76 else
77 super()
78 self.isPermaLink = args[0]
79 self.content = args[1]
80 end
81 end
82
83 alias_method :_PermaLink?, :PermaLink?
84 private :_PermaLink?
85 def PermaLink?
86 perma = _PermaLink?
87 perma or perma.nil?
88 end
89
90 private
91 def maker_target(item)
92 item.guid
93 end
94
95 def setup_maker_attributes(guid)
96 guid.isPermaLink = isPermaLink
97 guid.content = content
98 end
99 end
100
101 end
102
103 end
104
105 end
106
107 RSS09::ELEMENTS.each do |name|
108 BaseListener.install_get_text_element("", name, "#{name}=")
109 end
110
111end
Note: See TracBrowser for help on using the repository browser.