# class 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
Calls superclass method `RSS::RootElementMixin::new`

    # File lib/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 lib/rss/0.9.rb, line 76
    def image
      if @channel
        @channel.image
      else
        nil
      end
    end

items() click to toggle source

    # File lib/rss/0.9.rb, line 68
    def items
      if @channel
        @channel.items
      else
        []
      end
    end

setup_maker_elements(maker) click to toggle source
Calls superclass method

    # 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() click to toggle source

    # File lib/rss/0.9.rb, line 84
    def textinput
      if @channel
        @channel.textInput
      else
        nil
      end
    end

### Private Instance Methods

_attrs() click to toggle source

    # File lib/rss/0.9.rb, line 102
    def _attrs
      [
        ["version", true, "feed_version"],
      ]
    end