Ruby で RSS を作成する方法

標準ライブラリの RSS::Maker を使うのが手っ取り早い。

# coding: utf-8
require "rss/maker"

FEED_LINK = "http://d.hatena.ne.jp/griefowrker"

def sample_feed
  RSS::Maker.make("2.0") do |rss|
    rss.channel.title = "present"
    rss.channel.description = "feed sample"
    rss.channel.link = FEED_LINK
    rss.channel.about = FEED_LINK
    1.upto(5) do |i|
      item = rss.items.new_item
      item.title = "entry#{i}"
      item.link = FEED_LINK + "/entry/#{i}"
    end
  end.to_s
end

テスト用途で、RSS リーダーに読ませるわけじゃないから、これで十分。WebMock と組み合わせることで、RSS をダウンロードして加工する機能のテストが簡単に書けそうだ。