Project

hyperfeed

0.0
No commit activity in last 3 years
No release in over 3 years
An adapter to plug feeds content on hypermedia engines
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

 Project Readme

Hyperfeed

This gem turns RSS Feeds into ruby objects. It is a HttpMonkey middleware wich parse the feeds xml dynamically and create a hash from the given attributes.

As a gift for you this hash is Methodized, in other words, you can read the hash attributes as object methods.

*Note: currently supports only RSS feeds type (someone wants to code an Atom support???) and we let you to use feeds thats has more than W3C attributes on the content.

Installation

Add this line to your application's Gemfile:

gem 'hyperfeed'

And then execute:

$ bundle

Or install it yourself as:

$ gem install hyperfeed

Usage

  ##################
  # Accessing the feed

  response = Hyperfeed::Client.at("http://fakefeed/articles.rss").get
  
  puts response.inspect
  => {:per_page=>10, :current_page=>1, :total_pages=>1, :total_results=>5, :result=>[ ]...
  
  ##############
  # Reading items:
  
  item = response.result.first #enclosure(media) included
  
  puts item.inspect
  => {:id=>"83a84dd1481a1d8bdbc427cac2eba403", 
   :guid=>"http://fakefeed/article-1.html", 
   :title=>"Fake Title", :category=>"fake category", :description=>"Lorem ipsum dolor sit amet", 
   :link=>"http://fakefeed/article-1.html", :source=>"Fake feed", 
   :enclosure=>[{:url=>"http://fakefeed/image-1.jpg", 
                 :type=>"image/jpeg", :title=>"Image"}]}
                 
  puts item.guid
  => "http://fakefeed/article-1.html"
                 
  puts item.id #This ID is generated by hyperfeed and you can use it to access the exact item
  => "83a84dd1481a1d8bdbc427cac2eba403"
  
  item = Hyperfeed::Client.at("http://fakefeed/articles.rss").get("83a84dd1481a1d8bdbc427cac2eba403")
  puts item.title
  => "Fake Title"
  
  #############
  # Pagination
  
  response = Hyperfeed::Client.at("http://fakefeed/articles.rss", {:per_page => 20, :page => 2}).get

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request