No commit activity in last 3 years
No release in over 3 years
Rss and Atom feed parser with sanitizer support built on top of Nokogiri.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0.9
>= 2.10

Runtime

 Project Readme

FeedParser

Rss and Atom feed parser built on top of Nokogiri. Supports custom sanitizers.

Build Status

Build Status

FeedParser gem is tested on Ruby 1.9.3 and 2.0.0. 1.8.7 should work with Nokogiri < 1.6.0.

Install

Add to Gemfile

gem "feed_parser"

Usage

Parse from URL

fp = FeedParser.new(:url => "http://example.com/feed/")
feed = fp.parse

Optionally pass HTTP options, see more from the OpenURI documentation: http://apidock.com/ruby/OpenURI

fp = FeedParser.new(:url => "http://example.com/feed/", :http => {:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE})

Parse from an XML string

fp = FeedParser.new(:feed_xml => "<rss>...</rss>")
feed = fp.parse

Use sanitizer

fp = FeedParser.new(:url => "http://example.com/feed/", :sanitizer => MyBestestSanitizer.new)
# sanitizing custom field set
fp = FeedParser.new(:url => "http://example.com/feed/", :sanitizer => MyBestestSanitizer.new, :fields_to_sanitize => [:title, :content])

Using parsed feed in your code

feed.as_json
# => {:title => "Feed title", :url => "http://example.com/feed/", :items => [{:guid => , :title => , :author => ...}]}

feed.items.each do |feed_item|
  pp feed_item
end

If the XML is not a valid RSS or an ATOM feed, a FeedParser::UnknownFeedType is raised in FeedParser#parse.

Running tests

Install dependencies:

$ gem install bundler
$ bundle install

Run rspec tests:

$ bundle exec rake spec

Contributing

Fork, hack, push, create a pull request.