In questa lezione facciamo la veloce conoscenza di due librerie per la lettura di feed Atom e RSS, alternative alla libreria standard.
simple-rss
Esaminiamo per prima simple-rss, che è un semplice lettore di feed RSS e Atom. Vediamo come può essere riscritto il programma per la lettura di un feed RSS esterno, proposto nella lezione precedente.
require 'rubygems'
require 'simple-rss'
require 'open-uri'
rss = SimpleRSS.parse open('http://planetruby.0x42.net/rss20.xml')
puts "Feed from #{rss.feed.title}"
rss.entries.each do |post|
puts " " + post.title
end
La differenza a primo impatto non è non è molta ma in questo caso rss.entries è un array di hash, e ogni hash contiene tutte le informazioni relative ai post che sono ottenibili attraverso le chiavi dal nome autoesplicativo:
> post.keys description link title pubDate guid
Le informazioni sul canale sono ottenibili attraverso la classe SimpleRSS e sono a grandi linee le stesse rese disponibili da RSS. Allo stesso modo sono gestiti i feed di tipo Atom. Inoltre simple-rss mantiene la compatibilità con la libreria standard RSS.
atom-tools
Ora una gemma dedicata interamente al formato Atom. atom-tools permette il parsing e la creazione di feed Atom e a grandi linee ricalca la struttura già vista. Vediamo ancora lo stesso esempio ma stavolta scritto utilizzando atom-tools:
require 'rubygems'
require 'atom/feed'
require 'open-uri'
feed = Atom::Feed.new "http://googleblog.blogspot.com/atom.xml"
feed.update!
puts "Feed from #{feed.title.to_s}"
feed.entries.each do |post|
puts " " + post.title.to_s
end
Anche in questo caso per ogni post è possibile ottenere tutte le informazioni necessarie (titolo, descrizione, data, link, ecc.) attraverso gli attributi della classe Atom::Entry. Lo stesso discorso vale per informazioni relative al canale che è rappresentato da un oggetto di classe Atom::Feed.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: