summaryrefslogtreecommitdiff
path: root/lib/rss/2.0.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rss/2.0.rb')
-rw-r--r--lib/rss/2.0.rb81
1 files changed, 42 insertions, 39 deletions
diff --git a/lib/rss/2.0.rb b/lib/rss/2.0.rb
index c83fb2c393..c6c6db58a7 100644
--- a/lib/rss/2.0.rb
+++ b/lib/rss/2.0.rb
@@ -4,30 +4,21 @@ module RSS
class Rss
-# URI = "http://backend.userland.com/rss2"
-
-# install_ns('', URI)
-
-# def self.required_uri
-# URI
-# end
-
class Channel
-# def self.required_uri
-# URI
-# end
-
%w(generator ttl).each do |x|
install_text_element(x)
+ install_model(x, '?')
end
%w(category).each do |x|
install_have_child_element(x)
+ install_model(x, '?')
end
[
["image", "?"],
+ ["language", "?"],
].each do |x, occurs|
install_model(x, occurs)
end
@@ -40,17 +31,33 @@ module RSS
EOT
rv << super
end
+
+ private
+ alias children09 children
+ def children
+ children09 + [@category].compact
+ end
+
+ alias _tags09 _tags
+ def _tags
+ %w(generator ttl category).delete_if do |x|
+ send(x).nil?
+ end.collect do |elem|
+ [nil, elem]
+ end + _tags09
+ end
Category = Item::Category
-# def Category.required_uri
-# URI
-# end
class Item
-# def self.required_uri
-# URI
-# end
+ [
+ ["comments", "?"],
+ ["author", "?"],
+ ].each do |x, occurs|
+ install_text_element(x)
+ install_model(x, occurs)
+ end
[
["pubDate", '?'],
@@ -68,20 +75,33 @@ EOT
def other_element(convert, indent='')
rv = <<-EOT
+#{indent}#{author_element(false)}
+#{indent}#{comments_element(false)}
#{indent}#{pubDate_element(false)}
#{indent}#{guid_element(false)}
EOT
rv << super
end
+ private
+ alias children09 children
+ def children
+ children09 + [@guid].compact
+ end
+
+ alias _tags09 _tags
+ def _tags
+ %w(comments author pubDate guid).delete_if do |x|
+ send(x).nil?
+ end.collect do |elem|
+ [nil, elem]
+ end + _tags09
+ end
+
class Guid < Element
include RSS09
-# def self.required_uri
-# URI
-# end
-
[
["isPermaLink", nil, false]
].each do |name, uri, required|
@@ -124,24 +144,7 @@ EOT
end
RSS09::ELEMENTS.each do |x|
-# BaseListener.install_get_text_element(x, Rss::URI, "#{x}=")
BaseListener.install_get_text_element(x, nil, "#{x}=")
end
- module ListenerMixin
- private
- alias start_rss09 start_rss
- def start_rss(tag_name, prefix, attrs, ns)
-# check_ns(tag_name, prefix, ns, Rss::URI)
-
- @rss = Rss.new(attrs['version'], @version, @encoding, @standalone)
- @rss.xml_stylesheets = @xml_stylesheets
- @last_element = @rss
- @proc_stack.push Proc.new { |text, tags|
- @rss.validate_for_stream(tags) if @do_validate
- }
- end
-
- end
-
end