A Rails pagination responder with link header support.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
gemfiles
lib
spec
.gitignore
.travis.yml
Appraisals
CHANGELOG.md
Gemfile
LICENSE.txt
README.md
Rakefile
paginate-responder.gemspec

README.md

Paginate::Responder

Gem Version Build Status Code Climate

A Rails pagination responder with link header support.

Installation

Add this line to your application's Gemfile:

gem 'paginate-responder'

And then execute:

$ bundle

Or install it yourself as:

$ gem install paginate-responder

You will also need a pagination gem. PaginateResponder comes with adapters for

It is recommended to use only one pagination gem at once.

Usage

Add Responders::PaginateResponder to your responder chain:

class AppResponder < Responder
  include Responders::PaginateResponder
end

class MyController < ApplicationController
  self.responder = AppResponder
end

Or use it with plataformatec/responders:

class MyController < ApplicationController
  responders Responders::PaginateResponder
end

PaginateResponder will add the following link headers to non HTML responses:

  • first First page's URL.
  • last Last page's URL.
  • next Next page's URL.
  • prev Previous page's URL.

next and prev page links will not be added if current page is first or last page.

Also a X-Total-Pages header will be added with the total number of pages if available and a X-Total-Count header with the total number of items. This allows applications to display a progress bar or similar while fetching pages.

Override page detections and options

You can override the page detection by creating a method page in your controller that returns the page index as a fixnum:

class ApplicationController
  def page
    params[:seite].to_i # seite means page in German
  end
end

Same goes for per_page and max_per_page:

class ApplicationController
  def per_page
    10
  end

  def max_per_page
    25
  end
end

TODOs

  • Documentation ** Controller methods

Contributing

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

License

MIT License

Copyright (c) 2013, Jan Graichen