If you'd like to repurpose RSS feeds for display on your site, FeedTools is a great library for fetching and parsing feeds. FeedTools also makes it easy to cache the results of parsing a feed.
In the music store that I'm creating, products can be associated with artists, and those artists often have blogs or other feeds. We can use those feeds to pull info about the artist into the view when displaying a product by the artist. Here's an example of parsing a feed and displaying the feed items in a view.
The table:
create_table "cached_feeds" do |t|
t.column "href", :string
t.column "title", :string
t.column "link", :string
t.column "feed_data", :text
t.column "feed_data_type", :string
t.column "http_headers", :text
t.column "last_retrieved", :datetime
end
The helper:
def parse_feed(url)
return if url.blank?
FeedTools.configurations[:feed_cache] = "FeedTools::DatabaseFeedCache"
FeedTools::Feed.open(url)
end
And the view:
< % if @product.artist && feed = parse_feed(@product.artist.feed_url) %>
And you're done. :)
Recent news for < %=h @product.artist.name %>
< % feed.items[0..4].each do |item| %>
< % end %>
Comments