Project

General

Profile

Patch #231 » RSSParser.rb

Carlos Segura, 2008-02-03 11:01

 
1
class RSSParser
2
  require 'rexml/document'
3
  def self.run(url)
4
    xml = REXML::Document.new Net::HTTP.get(URI.parse(url))
5
    data = {
6
      :title    => xml.root.elements['channel/title'].text,
7
      :home_url => xml.root.elements['channel/link'].text,
8
      :rss_url  => url,
9
      :items    => []
10
    }
11
    xml.elements.each '//item' do |item|
12
      new_items = {} and item.elements.each do |e| 
13
        new_items[e.name.gsub(/^dc:(\w)/,"\1").to_sym] = e.text
14
      end
15
      data[:items] << new_items
16
    end
17
    data
18
  end
19
end
20

    
(3-3/4)