Ruby on Railsで、RSSを読み込む

RubyRSSシリーズ最終回(笑)
外部のRSSを取り込んで、DBに格納するアクションを追加

  def read
    url = params[:url]
    rss_source = nil
    open(url) {|u|
      rss_source = u.read
    }
    @rss = nil
    begin
      @rss = RSS::Parser.parse(rss_source)
    rescue RSS::InvalidRSSError
      @rss = RSS::Parser.parse(rss_source, false)
    end
    begin
      @channel = Channel.new
      @channel.title       = @rss.channel.title
      @channel.description = @rss.channel.description
      @channel.link        = @rss.channel.link
      @channel.save
      @rss.items.reverse.each do |i|
        @item = Item.new
        @item.channel_id  = @channel.id
        @item.title       = i.title
        @item.description = i.description
        @item.date        = i.pubDate
        @item.link        = i.link
        @item.save
      end
    rescue => @ex
      raise "Exception:#{@ex}"
    end
  end

これで、Ruby関連はひとまず終了する。
次は何しようかなあ。
BioPerlでもやろうかな。