rssの生成

ruby1.8の標準ライブラリのrss/makerでいける

require 'rss/maker'

rss = RSS::Maker.make("2.0") do |rss|
  rss.channel.about = 'http://shokai.org/rss.xml'
  rss.channel.title = "橋本商会"
  rss.channel.description = "橋本商会のrssです"
  rss.channel.link = 'http://shokai.org'
  rss.channel.language = "ja"
  
  rss.items.do_sort = true
  rss.items.max_size = 15
  
  i= rss.items.new_item
  i.title = '記事1'
  i.link = 'http://shokai.org/1'
  i.description = '本文は全部いれて欲しい'
  i.date = Time.now
end

puts rss
  • items.new_itemの部分を繰り返して、記事データを追加していけばいい。max_sizeを15にしてるから、それ以上入れたらどうなるかはわからない。
  • Content-Typeはapplication/xmlにする

出力

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>橋本商会</title>
    <link>http://shokai.org</link>
    <description>橋本商会のrssです</description>
    <language>ja</language>
    <item>
      <title>記事1</title>
      <link>http://shokai.org/1</link>
      <description>本文は全部いれて欲しい</description>
      <pubDate>Wed, 27 Apr 2011 14:42:36 +0900</pubDate>
      <dc:date>2011-04-27T14:42:36.604448+09:00</dc:date>
    </item>
  </channel>
</rss>

なんかよくわからんがxmlns:itunesとか書いてある。いちおうfeed-normalizerでparseはできたから問題は無いと思うけど。

参考:http://gdgdlog.net/log/show/130