Publish::rss - RSS2.0 形式のファイルを出力する

Pragger 用のプラグインです。
既存の RSS プラグインだと、1.0 のものしか出力しないし、
enclosure を出力してくれないので。
もっと汎用的にしたいけれど、今回はやっつけです。

def rss(config, data)
  return true  unless config.key?('filename')

  rss = RSS::Maker.make("2.0") do |maker|
    maker.channel.title = config['title'] || "Pragger publish rss2.0"
    maker.channel.description = config['description'] || ""
    maker.channel.link = config['link'] || "http://www.example.com/"
    
    data.each do |i|
      item = maker.items.new_item

      item.title = i.title || ''
      item.link = i.link|| "http://www.example.com/"
      item.description = i.description || ''
      item.date = i.date || Time.now

      item.enclosure.url    = i.enclosure.url    || "http://www.example.com/"
      item.enclosure.type   = i.enclosure.type   || "text/plain"
      item.enclosure.length = i.enclosure.length || 0
    end
  end

  File::open(config['filename'], "w") {|w| w.puts rss }

  data
end