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.
Add this line to your application's Gemfile:
gem 'her-kaminari'
And then execute:
$ bundle
Or install it yourself as:
$ gem install her-kaminari
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.
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.
- 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