FeedTools è una delle soluzioni più mature tra quelle illustrate in questo capitolo. Innanzitutto vediamo come scaricare i titoli dei nuovi feed da un canale:
require 'rubygems'
require 'feed_tools'
feed = FeedTools::Feed.open('http://feeds.feedburner.com/stacktrace')
puts "Feed from #{feed.title}"
feed.items.each do |post|
puts " " + post.title
end
Come nei casi precedenti per ogni post sono disponibili tutte le informazioni utili (autore, data, descrizione, commenti, etc.). Lo stesso procedimento va seguito per i feed di tipo Atom.
Anche la generazione di feed avviene seguendo lo stesso schema visto per la libreria RSS:
require 'rubygems'
require 'feed_tools'
feed = FeedTools::Feed.new
feed.title = 'Feed di esempio'
feed.description = 'Descrizione del canale RSS'
feed.link = 'http://example.com/'
post = FeedTools::FeedItem.new
post.titolo = "Titolo del post"
post.content = "Post d'esempio"
post.summary = "Descrizione del post d'esempio"
post.link = "http://example.com/post/1"
feed.items << post
output_xml = feed.build_xml('rss', 2.0)
La differenza principale sta nel fatto che in questo caso è possibile generare anche feed Atom e non solo RSS come accade per la libreria standard.
Un elemento caratterizzante di FeedTools è il sistema di caching (DatabaseFeedCache) che permette di salvare localmente i feed e scaricarli solo in caso di modifiche.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: