Feedlr - A Ruby interface to Feedly API
Switch branches/tags
Nothing to show
Clone or download
Latest commit a47462a Mar 8, 2016
Failed to load latest commit information.
lib code formatting Mar 7, 2016
spec update testing env Mar 7, 2016
.editorconfig add atom editor settings Mar 7, 2016
.gitignore Hello World :) This is Feedlr May 26, 2014
.rspec Hello World :) This is Feedlr May 26, 2014
.ruby-beautify add atom editor settings Mar 7, 2016
.travis.yml update testing env Mar 7, 2016
.yardopts Hello World :) This is Feedlr May 26, 2014
Gemfile update testing env Mar 7, 2016
LICENSE.md Hello World :) This is Feedlr May 26, 2014
README.md (J)Ruby >= 2.0 Mar 7, 2016
Rakefile code formatting Mar 7, 2016
feedlr.gemspec Ruby >= 1.9.3 is needed now Oct 23, 2014


Feedlr - A Ruby interface to Feedly API

Gem Version Build Status Coverage Status Dependency Status Code Climate

A Ruby interface to Feedly API.

API Support

  • Categories API
  • Entries API
  • Evernote API
  • Facebook API
  • Feeds API
  • Markers API
  • Microsoft API
  • Mixes API
  • Preferences API
  • Profile API
  • Search API
  • Streams API
  • Subscriptions API
  • Tags API
  • Topics API
  • Twitter API
  • URL Shortener API

Supported Ruby Versions

Feedlr is tested under 2.0, 2.1, 2.2, JRuby(1.9 mode) and Rubinius 2.2.7.


Add this line to your application's Gemfile:

gem 'feedlr'

And then execute:

$ bundle

Or install it yourself as:

$ gem install feedlr


Basic usage

require 'feedlr'
client = Feedlr::Client.new(oauth_access_token: 'oauth access token')
# Fetch user categories
p client.user_categories
# Fetch user subscriptions
p client.user_subscriptions

Detailed API

You can easily inspect the available client methods:

client = Feedlr::Client.new
p client.api_methods

Also, the gem is fairly documented. Browse the YARD documentaion for more information.

Global configuration

You can have a global configuration that instances can use. For example, you can have the following in some initializer's code:

Feedlr.configure do |config|
  config.oauth_access_token = 'oauth access token'
  config.sandbox = true
  config.logger = SomeCustomLogger.new

And elsewhere you can do:

client = Feedlr::Client.new

Instance initialization

You can set the oauth access token, a custom logger(if needed) and whether or not to use the client on sandbox(develpment) mode:

require 'logger'
client = Feedlr::Client.new(
  oauth_access_token: 'oauth access token',
  sandbox: true,
  logger: Logger.new(STDOUT)


Some requests support pagination(continuation)

cursor = client.stream_entries_contents(stream_id)
cursor.each { |page| p page.items.map(&:title) }

For those requests, you will get enumerable paginated results Feedlr::Cursor. Calling each or each_page on a Feedlr::Cursor object yields the response and any follow up responses.

There are a few other helper methods that make it easy to control response paging:

cursor.last_page? #=> false
cursor.next_page? #=> true

# gets the next page, returns nil for the last page
resp = cursor.next_page

# gets each response in a loop
resp = cursor.next_page until cursor.last_page?

Rate limiting

The client deals with a variaty of errors. The errors have a corresponding rate_limit object that maps to the returned rate limiting headers if any.


  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