RSS Feed
Synopsis
Fetch RSS feeds, collect entries using Feedzirra gem and feed your database.
Installation
gem install rss-feed
Or put in your Gemfile
:
gem "rss-feed"
Then (obviously) type bundle
in your favorite command line interface.
You may encounter some issue when installing (I did). Some dependencies must be satisfied. On Ubuntu, the dependencies can be satisfied by installing the following packages:
sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev
Please visit for extra information: github.com/taf2/curb
Usage
In your model:
class Article
include Mongoid::Document
include Rss::Feed
# Add this line to set which RSS feed this model must subscribe to
subscribes_to "https://news.google.fr/news/feeds?output=rss"
end
Your model get thus some methods:
# Get subscribed feed url
Article.feed_url # => "https://news.google.fr/news/feeds?output=rss"
# Get already loaded feed entries
Article.feed_entries # => [] # because the feed has not been loaded
# Load feed from feed_url
Article.get_feed
Article.feed_entries # => the collection of the feed entries
# (Re)load and store the feed entries as model documents
Article.update_from_feed
Rake task
A Rake task has been implemented to enable you automatically get new feed entries for every models that have subscribed to an RSS feed (i.e. Model.subscribes_to
is present in your involved models). Simply do:
rake rss:feed:update
Contributing to RSS Feed
-
Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet.
-
Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it.
-
Fork the project.
-
Start a feature/bugfix branch.
-
Commit and push until you are happy with your contribution.
-
Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
Copyright
Copyright © 2012 Sebastien Azimi. See LICENSE.txt for further details.