Her::Kaminari
Makes Her aware of APIs that return pagination headers like grape-kaminari gem.
Her models can now query these APIs like any other kaminari model:
User.page(1).per(10)
IMPORTANT: Pagination is done by the API not by this gem, this gem just parses the response data and creates a Kaminari compatible collection that you can use in your views.
Gem Dependencies
Installation
Add this line to your application's Gemfile:
gem 'her-kaminari'
And then execute:
$ bundle
Or install it yourself as:
$ gem install her-kaminari
Usage
First include Her::Kaminari::HeaderParser in your Her setup like this:
Her::API.setup url: 'https://api.example.com' do |c|
#...
# Response
c.use Her::Kaminari::HeaderParser
# ...
end
HeaderParser expects that the API request returns the following headers:
X-Total: Total number of records.
X-Page: Current page number.
X-Per-Page: Number of records per page.
X-Offset: (optional) the starting point for the return data.
Then include Her::Kaminari::Collection in your Her model like this:
class User
include Her::Model
include Her::Kaminari::Collection
end
Now you can use your Her model like any other Kaminari model.
History
After reading How to pass pagination headers with Kaminari, Her and Grape? post by Artur Hebda I decided that it was a good idea to create a gem with his code.
Contributing
- Fork it ( https://github.com/[my-github-username]/her-kaminari/fork )
- 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 a new Pull Request