Support for the Ruby 2.4 series has ended. See here for reference.

In Files

  • rss/0.9.rb
  • rss/2.0.rb
  • rss/content/2.0.rb
  • rss/dublincore/2.0.rb
  • rss/itunes.rb
  • rss/maker/0.9.rb
  • rss/maker/2.0.rb
  • rss/trackback.rb

Parent

Namespace

Class/Module Index [+]

Quicksearch

RSS::Rss

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.

Attributes

feed_version[W]
rss_version[RW]

Public Class Methods

new(feed_version, version=nil, encoding=nil, standalone=nil) click to toggle source
 
               # File rss/0.9.rb, line 63
def initialize(feed_version, version=nil, encoding=nil, standalone=nil)
  super
  @feed_type = "rss"
end
            

Public Instance Methods

image() click to toggle source
 
               # File rss/0.9.rb, line 76
def image
  if @channel
    @channel.image
  else
    nil
  end
end
            
items() click to toggle source
 
               # File rss/0.9.rb, line 68
def items
  if @channel
    @channel.items
  else
    []
  end
end
            
setup_maker_elements(maker) click to toggle source
 
               # File 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() click to toggle source
 
               # File rss/0.9.rb, line 84
def textinput
  if @channel
    @channel.textInput
  else
    nil
  end
end