Patch #231 » RSSParser.rb
| 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 |
|