diff options
author | (no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-04-06 08:02:56 +0000 |
---|---|---|
committer | (no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-04-06 08:02:56 +0000 |
commit | 5923a2c0e770515a9c7144c50e09a32350695b00 (patch) | |
tree | 66882c2ac60d7d1b25bb49ee476cb829695aa906 /lib/rss/2.0.rb | |
parent | 8e773df6d3b68caf2e56e6c75a8e48bf2ccc1bd3 (diff) |
This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/2.0.rb')
-rw-r--r-- | lib/rss/2.0.rb | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/lib/rss/2.0.rb b/lib/rss/2.0.rb new file mode 100644 index 0000000000..c83fb2c393 --- /dev/null +++ b/lib/rss/2.0.rb @@ -0,0 +1,147 @@ +require "rss/0.9" + +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) + end + + %w(category).each do |x| + install_have_child_element(x) + end + + [ + ["image", "?"], + ].each do |x, occurs| + install_model(x, occurs) + end + + def other_element(convert, indent='') + rv = <<-EOT +#{indent}#{category_element(convert)} +#{indent}#{generator_element(convert)} +#{indent}#{ttl_element(convert)} +EOT + rv << super + end + + Category = Item::Category +# def Category.required_uri +# URI +# end + + class Item + +# def self.required_uri +# URI +# end + + [ + ["pubDate", '?'], + ].each do |x, occurs| + install_date_element(x, 'rfc822') + install_model(x, occurs) + end + + [ + ["guid", '?'], + ].each do |x, occurs| + install_have_child_element(x) + install_model(x, occurs) + end + + def other_element(convert, indent='') + rv = <<-EOT +#{indent}#{pubDate_element(false)} +#{indent}#{guid_element(false)} +EOT + rv << super + end + + class Guid < Element + + include RSS09 + +# def self.required_uri +# URI +# end + + [ + ["isPermaLink", nil, false] + ].each do |name, uri, required| + install_get_attribute(name, uri, required) + end + + content_setup + + def initialize(isPermaLink=nil, content=nil) + super() + @isPermaLink = isPermaLink + @content = content + end + + def to_s(convert=true) + if @content + rv = %Q!<guid! + rv << %Q! isPermaLink="#{h @isPermaLink}"! if @isPermaLink + rv << %Q!>#{h @content}</guid>! + rv = @converter.convert(rv) if convert and @converter + rv + else + '' + end + end + + private + def _attrs + [ + ["isPermaLink", false] + ] + end + + end + + end + + end + + 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 |