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 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
Calls superclass method
# 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
Private Instance Methods
_attrs()
click to toggle source
# File rss/0.9.rb, line 102 def _attrs [ ["version", true, "feed_version"], ] end