1
0
Fork 0
mirror of https://github.com/kaminari/kaminari.git synced 2022-11-09 13:44:37 -05:00
A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Ruby webapps
Find a file
2011-02-07 20:47:06 +09:00
app/views/kaminari Ajaxify the links! 2011-02-07 20:47:06 +09:00
lib Ajaxify the links! 2011-02-07 20:47:06 +09:00
spec rename method 2011-02-07 00:12:08 +09:00
.document Initial commit to kaminari. 2011-02-05 22:32:10 +09:00
.gitignore ignore log 2011-02-05 23:45:49 +09:00
.rspec prepare for the specs 2011-02-05 23:45:49 +09:00
CHANGELOG Version bump to 0.6.0 2011-02-07 11:57:58 +09:00
Gemfile rspec 2.5 works well 2011-02-07 16:48:47 +09:00
Gemfile.lock rspec 2.5 works well 2011-02-07 16:48:47 +09:00
kaminari.gemspec Version bump to 0.6.1 2011-02-07 12:01:34 +09:00
LICENSE.txt Initial commit to kaminari. 2011-02-05 22:32:10 +09:00
Rakefile documentation 2011-02-06 16:58:07 +09:00
README.rdoc documentation 2011-02-07 11:58:53 +09:00
TODO.txt I did it! 2011-02-07 12:00:35 +09:00
VERSION Version bump to 0.6.1 2011-02-07 12:01:34 +09:00

= Kaminari

A Scope & Engine based clean and powerful and customizable and sophisticated paginator for Rails 3


== Features

* Clean
Does not globally pollute Array, Hash, Object or AR::Base.

* Easy to use
Just bundle the gem, then your models are ready to be paginated. No configuration. Don't have to define anything in your models or helpers.

* Scope based simple API
Everything is method chainable with less Hasheritis. You know, that's the Rails 3 way.
No special collection class or something for the paginated values but uses a general AR::Relation instance. So, of course you can chain any other conditions before or after the paginator scope.

* Engine based customizable helper
As the whole pagination helper is basically just a collection of links and non-links, Kaminari renders each of them through its own partial template inside the Engine. So, you can easily modify their behaviour or style or whatever by overriding partial templates.


== Rails versions

3.0.x and 3.1


== Install

Put this line in your Gemfile:
  gem 'kaminari'

Then bundle:
  % bundle


== Usage

=== Query Basics

* Fetch the 7th page of the users (per_page = 25 by default)

  User.page(7)

* Show a lot more users per each page (change the per_page value)

  User.page(7).per(50)

=== Controllers

* Typically, your controller code will look like this:

  @users = User.order(:name).page params[:page]

=== Views

* Just call the "paginate" helper

  <%= paginate @users %>

* Specifing the "window" size

  # "inner window" (4 by default)

  <%= paginate @users, :window => 3 %>

  # "outer window" (1 by default)

  <%= paginate @users, :outer_window => 3 %>

  # outer window can be separetely specified by "left", "right" (1 by default)

  <%= paginate @users, :left => 0, :right => 2 %>

=== Customizing the pagination helper

* The generator

  % rails g kaminari:views
Then edit the partials in your app's app/views/kaminari/ directory.

* For Haml users

Haml templates generator is also available by adding "-e haml" option.

  % rails g kaminari:views -e haml


== Contributing to Kaminari

* Fork, fix, then send me a pull request.


== Copyright

Copyright (c) 2011 Akira Matsuda. See LICENSE.txt for further details.