RSS ファイルを読み込む

RSS ファイルを読み込むプロパティを作成してみた。
そんなことをしなくてもフツーに Ruby 標準の RSS Parser だけを
使えばいいんですが。

require 'lib/rire'
require 'rss/maker'

class RSSEntry < Rire::PropertyBase
  setup do |source|
    text = ''
    open(source) {|io|
      text = io.read
    }

    begin
      rss = RSS::Parser.parse(text)
    rescue RSS::InvalidRSSError
      rss = RSS::Parser.parse(text, false)
    end

    rss.items
  end

  foreach do |item|
    %w(title link description date content enclosure).each do |name|
        val = item.send(name) rescue nil
        has_property name.to_sym, val unless val.nil?
    end
  end
end

rss = RSSEntry.fetch('hatena_rss.xml')

pp rss