Feedlr - A Ruby interface to Feedly API
A Ruby interface to Feedly API.
API Support
- Categories API
- Entries API
- Evernote API
- Facebook API
- Feeds API
- Markers API
- Microsoft API
- Mixes API
- OPML 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.
Installation
Add this line to your application's Gemfile:
gem 'feedlr'
And then execute:
$ bundle
Or install it yourself as:
$ gem install feedlr
Usage
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
end
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)
)
Pagination
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.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request