RSS 2.0 support

RSS has three different versions. This module contains support for version 2.0

Producing RSS 2.0

Producing our own RSS feeds is easy as well. Let's make a very basic feed:

require "rss"

rss = RSS::Maker.make("2.0") do |maker|
  maker.channel.language = "en"
  maker.channel.author = "matz"
  maker.channel.updated = Time.now.to_s
  maker.channel.link = "http://www.ruby-lang.org/en/feeds/news.rss"
  maker.channel.title = "Example Feed"
  maker.channel.description = "A longer description of my feed."
  maker.items.new_item do |item|
    item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
    item.title = "Ruby 1.9.2-p136 is released"
    item.updated = Time.now.to_s
  end
end

puts rss

As you can see, this is a very Builder-like DSL. This code will spit out an RSS 2.0 feed with one item. If we needed a second item, we'd make another block with maker.items.new_item and build a second one.

Namespace
Methods
I
N
S
T
Included Modules
Attributes
[W] feed_version
[RW] rss_version
Class Public methods
new(feed_version, version=nil, encoding=nil, standalone=nil)
# File lib/rss/0.9.rb, line 63
def initialize(feed_version, version=nil, encoding=nil, standalone=nil)
  super
  @feed_type = "rss"
end
Instance Public methods
image()
# File lib/rss/0.9.rb, line 76
def image
  if @channel
    @channel.image
  else
    nil
  end
end
items()
# File lib/rss/0.9.rb, line 68
def items
  if @channel
    @channel.items
  else
    []
  end
end
setup_maker_elements(maker)
# File lib/rss/0.9.rb, line 92
def setup_maker_elements(maker)
  super
  items.each do |item|
    item.setup_maker(maker.items)
  end
  image.setup_maker(maker) if image
  textinput.setup_maker(maker) if textinput
end
textinput()
# File lib/rss/0.9.rb, line 84
def textinput
  if @channel
    @channel.textInput
  else
    nil
  end
end