1
0
Fork 0
mirror of https://github.com/kaminari/kaminari.git synced 2022-11-09 13:44:37 -05:00

documentation

This commit is contained in:
Akira Matsuda 2011-04-22 12:52:25 +09:00
parent aaf60cf2ee
commit eb38f317f2
2 changed files with 40 additions and 10 deletions

View file

@ -1,3 +1,24 @@
== 0.12.0
* General configuration options #41 #62 [javierv, iain]
You can now globally override some default values such as default_per_page,
window, etc. via configuration file.
Also, here comes a generator command that generates the default
configuration file into your app's config/initilizers directory.
* Generic pagination support for Array object #47 #68 #74 [lda ened jianlin]
You can now paginate through any kind of Arrayish object in this way:
Kaminari.paginate_array(my_array_object).page(params[:page]).per(10)
* Fixed a serious performance regression in 0.11.0 [ankane]
There was a critical performance issue on #count method in 0.11.0 gem.
* Bugfix: Pass the real @params to url_for #90 [utkarshkukreti]
* Fixed a gem packaging problem (circular dependency)
There was a packaging problem with Kaminari 0.11.0 that the gem depends on
Kaminari gem. Maybe Jeweler + "gemspec" method didn't work well...
== 0.11.0
This release contains several backward incompatibilities on template API.

View file

@ -43,6 +43,7 @@ Put this line in your Gemfile:
Then bundle:
% bundle
== Usage
=== Query Basics
@ -103,24 +104,24 @@ Run the following generator command, then edit the generated file.
<%= paginate @users, :window => 2 %>
This would output something like <tt>... 5 6 7 8 9 ...</tt> when 7 is the current page.
* specifing the "outer window" size (1 by default)
* specifing the "outer window" size (0 by default)
<%= paginate @users, :outer_window => 3 %>
This would output something like <tt>1 2 3 4 ...(snip)... 17 18 19 20</tt> while having 20 pages in total.
* outer window can be separetely specified by +left+, +right+ (1 by default)
* outer window can be separetely specified by +left+, +right+ (0 by default)
<%= paginate @users, :left => 0, :right => 2 %>
<%= paginate @users, :left => 1, :right => 3 %>
This would output something like <tt>1 ...(snip)... 18 19 20</tt> while having 20 pages in total.
* changing the parameter name (:+param_name+) for the links
<%= paginate @users, :param_name => :pagina
<%= paginate @users, :param_name => :pagina %>
This would modify the query parameter name on each links.
* extra parameters (:+params+) for the links
<%= paginate @users, :params => {:controller => 'foo', :action => 'bar'}
<%= paginate @users, :params => {:controller => 'foo', :action => 'bar'} %>
This would modify each link's +url_option+. :+controller+ and :+action+ might be the keys in common.
* Ajax links (crazy simple, but works perfectly!)
@ -172,25 +173,33 @@ Kaminari includes a handy template generator.
* multiple themes
To utilize multiple themes from within a single application, create a directory within the app/views/kaminari/ and move your custom template files into that directory.
rails g kaminari:views default (skip if you have existing kaminari views)
cd app/views/kaminari
mkdir my_custom_theme
cp _*.html.* my_custom_theme/
% rails g kaminari:views default (skip if you have existing kaminari views)
% cd app/views/kaminari
% mkdir my_custom_theme
% cp _*.html.* my_custom_theme/
Next reference that directory when calling the paginate method:
% paginate @users, :theme => 'my_custom_theme'
<%= paginate @users, :theme => 'my_custom_theme' %>
Customize away!
Note: if the theme isn't present or none is specified, kaminari will default back to the views included within the gem.
=== Paginating a generic Array object
Kaminari provides an Array wrapper class that adapts a generic Array object to the <tt>paginate</tt> view helper.
However, the <tt>paginate</tt> helper doesn't automatically handle your Array object (this is an intensional design).
<tt>Kaminari::paginate_array</tt> method converts your Array object into a paginatable Array that accepts <tt>page</tt> method.
Kaminari.paginate_array(my_array_object).page(params[:page]).per(10)
== For more information
Check out Kaminari recipes on the GitHub Wiki for more advanced tips and techniques.
https://github.com/amatsuda/kaminari/wiki/Kaminari-recipes
== Questions, Feedback
Feel free to message me on Github (amatsuda) or Twitter (@a_matsuda) ☇☇☇ :)