will_paginate 2.3.17 → 3.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of will_paginate might be problematic. Click here for more details.
- data/CHANGELOG.rdoc +24 -80
- data/LICENSE +1 -1
- data/README.rdoc +125 -0
- data/Rakefile +26 -22
- data/lib/will_paginate.rb +10 -84
- data/lib/will_paginate/array.rb +25 -8
- data/lib/will_paginate/collection.rb +15 -28
- data/lib/will_paginate/core_ext.rb +26 -0
- data/lib/will_paginate/deprecation.rb +50 -0
- data/lib/will_paginate/finders.rb +9 -0
- data/lib/will_paginate/finders/active_record.rb +158 -0
- data/lib/will_paginate/finders/active_resource.rb +51 -0
- data/lib/will_paginate/finders/base.rb +112 -0
- data/lib/will_paginate/finders/data_mapper.rb +30 -0
- data/lib/will_paginate/finders/sequel.rb +23 -0
- data/lib/will_paginate/railtie.rb +26 -0
- data/lib/will_paginate/version.rb +5 -5
- data/lib/will_paginate/view_helpers.rb +25 -436
- data/lib/will_paginate/view_helpers/action_view.rb +142 -0
- data/lib/will_paginate/view_helpers/base.rb +126 -0
- data/lib/will_paginate/view_helpers/link_renderer.rb +130 -0
- data/lib/will_paginate/view_helpers/link_renderer_base.rb +83 -0
- data/lib/will_paginate/view_helpers/merb.rb +13 -0
- data/spec/collection_spec.rb +147 -0
- data/spec/console +8 -0
- data/spec/console_fixtures.rb +8 -0
- data/spec/database.yml +22 -0
- data/spec/finders/active_record_spec.rb +377 -0
- data/spec/finders/active_resource_spec.rb +52 -0
- data/spec/finders/activerecord_test_connector.rb +114 -0
- data/spec/finders/data_mapper_spec.rb +62 -0
- data/spec/finders/data_mapper_test_connector.rb +20 -0
- data/spec/finders/sequel_spec.rb +53 -0
- data/spec/finders/sequel_test_connector.rb +9 -0
- data/spec/finders_spec.rb +76 -0
- data/{test → spec}/fixtures/admin.rb +0 -0
- data/{test → spec}/fixtures/developer.rb +2 -3
- data/{test → spec}/fixtures/developers_projects.yml +0 -0
- data/{test → spec}/fixtures/project.rb +2 -6
- data/{test → spec}/fixtures/projects.yml +1 -1
- data/{test → spec}/fixtures/replies.yml +0 -0
- data/{test → spec}/fixtures/reply.rb +1 -1
- data/{test → spec}/fixtures/schema.rb +0 -0
- data/spec/fixtures/topic.rb +7 -0
- data/{test → spec}/fixtures/topics.yml +0 -0
- data/{test → spec}/fixtures/user.rb +0 -0
- data/{test → spec}/fixtures/users.yml +0 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +74 -0
- data/spec/tasks.rake +60 -0
- data/spec/view_helpers/action_view_spec.rb +345 -0
- data/spec/view_helpers/base_spec.rb +64 -0
- data/spec/view_helpers/link_renderer_base_spec.rb +84 -0
- data/spec/view_helpers/view_example_group.rb +103 -0
- metadata +60 -65
- data/README.md +0 -53
- data/lib/will_paginate/finder.rb +0 -269
- data/lib/will_paginate/i18n.rb +0 -29
- data/lib/will_paginate/locale/en.yml +0 -33
- data/lib/will_paginate/named_scope.rb +0 -170
- data/lib/will_paginate/named_scope_patch.rb +0 -37
- data/lib/will_paginate/per_page.rb +0 -27
- data/test/ci.rb +0 -60
- data/test/collection_test.rb +0 -160
- data/test/console +0 -8
- data/test/database.yml +0 -16
- data/test/finder_test.rb +0 -527
- data/test/fixtures/topic.rb +0 -12
- data/test/gemfiles/Gemfile.1.2 +0 -13
- data/test/gemfiles/Gemfile.1.2.lock +0 -39
- data/test/gemfiles/Gemfile.2.0 +0 -16
- data/test/gemfiles/Gemfile.2.0.lock +0 -28
- data/test/gemfiles/Gemfile.2.1 +0 -16
- data/test/gemfiles/Gemfile.2.1.lock +0 -28
- data/test/gemfiles/Gemfile.2.2 +0 -16
- data/test/gemfiles/Gemfile.2.2.lock +0 -28
- data/test/helper.rb +0 -34
- data/test/lib/activerecord_test_case.rb +0 -38
- data/test/lib/activerecord_test_connector.rb +0 -86
- data/test/lib/load_fixtures.rb +0 -12
- data/test/lib/view_test_process.rb +0 -186
- data/test/view_test.rb +0 -380
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'will_paginate/view_helpers/base'
|
3
|
+
require 'will_paginate/array'
|
4
|
+
|
5
|
+
describe WillPaginate::ViewHelpers::Base do
|
6
|
+
|
7
|
+
include WillPaginate::ViewHelpers::Base
|
8
|
+
|
9
|
+
describe "will_paginate" do
|
10
|
+
it "should render" do
|
11
|
+
collection = WillPaginate::Collection.new(1, 2, 4)
|
12
|
+
renderer = mock 'Renderer'
|
13
|
+
renderer.expects(:prepare).with(collection, instance_of(Hash), self)
|
14
|
+
renderer.expects(:to_html).returns('<PAGES>')
|
15
|
+
|
16
|
+
will_paginate(collection, :renderer => renderer).should == '<PAGES>'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return nil for single-page collections" do
|
20
|
+
collection = mock 'Collection', :total_pages => 1
|
21
|
+
will_paginate(collection).should be_nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "page_entries_info" do
|
26
|
+
before :all do
|
27
|
+
@array = ('a'..'z').to_a
|
28
|
+
end
|
29
|
+
|
30
|
+
def info(params, options = {})
|
31
|
+
options[:html] ||= false unless options.key?(:html) and options[:html].nil?
|
32
|
+
collection = Hash === params ? @array.paginate(params) : params
|
33
|
+
page_entries_info collection, options
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should display middle results and total count" do
|
37
|
+
info(:page => 2, :per_page => 5).should == "Displaying strings 6 - 10 of 26 in total"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should output HTML by default" do
|
41
|
+
info({ :page => 2, :per_page => 5 }, :html => nil).should ==
|
42
|
+
"Displaying strings <b>6 - 10</b> of <b>26</b> in total"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should display shortened end results" do
|
46
|
+
info(:page => 7, :per_page => 4).should include_phrase('strings 25 - 26')
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should handle longer class names" do
|
50
|
+
collection = @array.paginate(:page => 2, :per_page => 5)
|
51
|
+
collection.first.stubs(:class).returns(mock('Class', :name => 'ProjectType'))
|
52
|
+
info(collection).should include_phrase('project types')
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should adjust output for single-page collections" do
|
56
|
+
info(('a'..'d').to_a.paginate(:page => 1, :per_page => 5)).should == "Displaying all 4 strings"
|
57
|
+
info(['a'].paginate(:page => 1, :per_page => 5)).should == "Displaying 1 string"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should display 'no entries found' for empty collections" do
|
61
|
+
info([].paginate(:page => 1, :per_page => 5)).should == "No entries found"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'will_paginate/view_helpers/link_renderer_base'
|
3
|
+
require 'will_paginate/collection'
|
4
|
+
|
5
|
+
describe WillPaginate::ViewHelpers::LinkRendererBase do
|
6
|
+
|
7
|
+
before do
|
8
|
+
@renderer = WillPaginate::ViewHelpers::LinkRendererBase.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise error when unprepared" do
|
12
|
+
lambda {
|
13
|
+
@renderer.send :param_name
|
14
|
+
}.should raise_error
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should prepare with collection and options" do
|
18
|
+
prepare({}, :param_name => 'mypage')
|
19
|
+
@renderer.send(:current_page).should == 1
|
20
|
+
@renderer.send(:param_name).should == 'mypage'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have total_pages accessor" do
|
24
|
+
prepare :total_pages => 42
|
25
|
+
lambda {
|
26
|
+
@renderer.send(:total_pages).should == 42
|
27
|
+
}.should_not have_deprecation
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should clear old cached values when prepared" do
|
31
|
+
prepare({ :total_pages => 1 }, :param_name => 'foo')
|
32
|
+
@renderer.send(:total_pages).should == 1
|
33
|
+
@renderer.send(:param_name).should == 'foo'
|
34
|
+
# prepare with different object and options:
|
35
|
+
prepare({ :total_pages => 2 }, :param_name => 'bar')
|
36
|
+
@renderer.send(:total_pages).should == 2
|
37
|
+
@renderer.send(:param_name).should == 'bar'
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should have pagination definition" do
|
41
|
+
prepare({ :total_pages => 1 }, :page_links => true)
|
42
|
+
@renderer.pagination.should == [:previous_page, 1, :next_page]
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "visible page numbers" do
|
46
|
+
it "should calculate windowed visible links" do
|
47
|
+
prepare({ :page => 6, :total_pages => 11 }, :inner_window => 1, :outer_window => 1)
|
48
|
+
showing_pages 1, 2, :gap, 5, 6, 7, :gap, 10, 11
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should eliminate small gaps" do
|
52
|
+
prepare({ :page => 6, :total_pages => 11 }, :inner_window => 2, :outer_window => 1)
|
53
|
+
# pages 4 and 8 appear instead of the gap
|
54
|
+
showing_pages 1..11
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should support having no windows at all" do
|
58
|
+
prepare({ :page => 4, :total_pages => 7 }, :inner_window => 0, :outer_window => 0)
|
59
|
+
showing_pages 1, :gap, 4, :gap, 7
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should adjust upper limit if lower is out of bounds" do
|
63
|
+
prepare({ :page => 1, :total_pages => 10 }, :inner_window => 2, :outer_window => 1)
|
64
|
+
showing_pages 1, 2, 3, 4, 5, :gap, 9, 10
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should adjust lower limit if upper is out of bounds" do
|
68
|
+
prepare({ :page => 10, :total_pages => 10 }, :inner_window => 2, :outer_window => 1)
|
69
|
+
showing_pages 1, 2, :gap, 6, 7, 8, 9, 10
|
70
|
+
end
|
71
|
+
|
72
|
+
def showing_pages(*pages)
|
73
|
+
pages = pages.first.to_a if Array === pages.first or Range === pages.first
|
74
|
+
@renderer.send(:windowed_page_numbers).should == pages
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
protected
|
79
|
+
|
80
|
+
def prepare(collection_options, options = {})
|
81
|
+
@renderer.prepare(collection(collection_options), options)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'action_dispatch/testing/assertions'
|
2
|
+
|
3
|
+
class ViewExampleGroup < Spec::Example::ExampleGroup
|
4
|
+
|
5
|
+
include ActionDispatch::Assertions::SelectorAssertions
|
6
|
+
|
7
|
+
def assert(value, message)
|
8
|
+
raise message unless value
|
9
|
+
end
|
10
|
+
|
11
|
+
def paginate(collection = {}, options = {}, &block)
|
12
|
+
if collection.instance_of? Hash
|
13
|
+
page_options = { :page => 1, :total_entries => 11, :per_page => 4 }.merge(collection)
|
14
|
+
collection = [1].paginate(page_options)
|
15
|
+
end
|
16
|
+
|
17
|
+
locals = { :collection => collection, :options => options }
|
18
|
+
|
19
|
+
@render_output = render(locals)
|
20
|
+
@html_document = nil
|
21
|
+
|
22
|
+
if block_given?
|
23
|
+
classname = options[:class] || WillPaginate::ViewHelpers.pagination_options[:class]
|
24
|
+
assert_select("div.#{classname}", 1, 'no main DIV', &block)
|
25
|
+
end
|
26
|
+
|
27
|
+
@render_output
|
28
|
+
end
|
29
|
+
|
30
|
+
def html_document
|
31
|
+
@html_document ||= HTML::Document.new(@render_output, true, false)
|
32
|
+
end
|
33
|
+
|
34
|
+
def response_from_page_or_rjs
|
35
|
+
html_document.root
|
36
|
+
end
|
37
|
+
|
38
|
+
def validate_page_numbers(expected, links, param_name = :page)
|
39
|
+
param_pattern = /\W#{Regexp.escape(param_name.to_s)}=([^&]*)/
|
40
|
+
|
41
|
+
links.map { |e|
|
42
|
+
e['href'] =~ param_pattern
|
43
|
+
$1 ? $1.to_i : $1
|
44
|
+
}.should == expected
|
45
|
+
end
|
46
|
+
|
47
|
+
def assert_links_match(pattern, links = nil, numbers = nil)
|
48
|
+
links ||= assert_select 'div.pagination a[href]' do |elements|
|
49
|
+
elements
|
50
|
+
end
|
51
|
+
|
52
|
+
pages = [] if numbers
|
53
|
+
|
54
|
+
links.each do |el|
|
55
|
+
el['href'].should =~ pattern
|
56
|
+
if numbers
|
57
|
+
el['href'] =~ pattern
|
58
|
+
pages << ($1.nil?? nil : $1.to_i)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
pages.should == numbers if numbers
|
63
|
+
end
|
64
|
+
|
65
|
+
def assert_no_links_match(pattern)
|
66
|
+
assert_select 'div.pagination a[href]' do |elements|
|
67
|
+
elements.each do |el|
|
68
|
+
el['href'] !~ pattern
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_message(message, pattern, *args)
|
74
|
+
built_message = pattern.dup
|
75
|
+
for value in args
|
76
|
+
built_message.sub! '?', value.inspect
|
77
|
+
end
|
78
|
+
built_message
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
Spec::Example::ExampleGroupFactory.register(:view_helpers, ViewExampleGroup)
|
84
|
+
|
85
|
+
module HTML
|
86
|
+
Node.class_eval do
|
87
|
+
def inner_text
|
88
|
+
children.map(&:inner_text).join('')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
Text.class_eval do
|
93
|
+
def inner_text
|
94
|
+
self.to_s
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
Tag.class_eval do
|
99
|
+
def inner_text
|
100
|
+
childless?? '' : super
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
metadata
CHANGED
@@ -1,33 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: will_paginate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 3
|
9
|
-
- 17
|
10
|
-
version: 2.3.17
|
4
|
+
version: 3.0.pre
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- "Mislav Marohni\xC4\x87"
|
14
|
-
- PJ Hyett
|
15
8
|
autorequire:
|
16
9
|
bindir: bin
|
17
10
|
cert_chain: []
|
18
11
|
|
19
|
-
date:
|
12
|
+
date: 2010-02-05 00:00:00 +01:00
|
20
13
|
default_executable:
|
21
14
|
dependencies: []
|
22
15
|
|
23
|
-
description: will_paginate provides a simple API for
|
16
|
+
description: The will_paginate library provides a simple, yet powerful and extensible API for pagination and rendering of page links in web application templates.
|
24
17
|
email: mislav.marohnic@gmail.com
|
25
18
|
executables: []
|
26
19
|
|
27
20
|
extensions: []
|
28
21
|
|
29
22
|
extra_rdoc_files:
|
30
|
-
- README.
|
23
|
+
- README.rdoc
|
31
24
|
- LICENSE
|
32
25
|
- CHANGELOG.rdoc
|
33
26
|
files:
|
@@ -35,84 +28,86 @@ files:
|
|
35
28
|
- lib/will_paginate/array.rb
|
36
29
|
- lib/will_paginate/collection.rb
|
37
30
|
- lib/will_paginate/core_ext.rb
|
38
|
-
- lib/will_paginate/
|
39
|
-
- lib/will_paginate/
|
40
|
-
- lib/will_paginate/
|
41
|
-
- lib/will_paginate/
|
42
|
-
- lib/will_paginate/
|
43
|
-
- lib/will_paginate/
|
31
|
+
- lib/will_paginate/deprecation.rb
|
32
|
+
- lib/will_paginate/finders/active_record.rb
|
33
|
+
- lib/will_paginate/finders/active_resource.rb
|
34
|
+
- lib/will_paginate/finders/base.rb
|
35
|
+
- lib/will_paginate/finders/data_mapper.rb
|
36
|
+
- lib/will_paginate/finders/sequel.rb
|
37
|
+
- lib/will_paginate/finders.rb
|
38
|
+
- lib/will_paginate/railtie.rb
|
44
39
|
- lib/will_paginate/version.rb
|
40
|
+
- lib/will_paginate/view_helpers/action_view.rb
|
41
|
+
- lib/will_paginate/view_helpers/base.rb
|
42
|
+
- lib/will_paginate/view_helpers/link_renderer.rb
|
43
|
+
- lib/will_paginate/view_helpers/link_renderer_base.rb
|
44
|
+
- lib/will_paginate/view_helpers/merb.rb
|
45
45
|
- lib/will_paginate/view_helpers.rb
|
46
46
|
- lib/will_paginate.rb
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
47
|
+
- spec/collection_spec.rb
|
48
|
+
- spec/console
|
49
|
+
- spec/console_fixtures.rb
|
50
|
+
- spec/database.yml
|
51
|
+
- spec/finders/active_record_spec.rb
|
52
|
+
- spec/finders/active_resource_spec.rb
|
53
|
+
- spec/finders/activerecord_test_connector.rb
|
54
|
+
- spec/finders/data_mapper_spec.rb
|
55
|
+
- spec/finders/data_mapper_test_connector.rb
|
56
|
+
- spec/finders/sequel_spec.rb
|
57
|
+
- spec/finders/sequel_test_connector.rb
|
58
|
+
- spec/finders_spec.rb
|
59
|
+
- spec/fixtures/admin.rb
|
60
|
+
- spec/fixtures/developer.rb
|
61
|
+
- spec/fixtures/developers_projects.yml
|
62
|
+
- spec/fixtures/project.rb
|
63
|
+
- spec/fixtures/projects.yml
|
64
|
+
- spec/fixtures/replies.yml
|
65
|
+
- spec/fixtures/reply.rb
|
66
|
+
- spec/fixtures/schema.rb
|
67
|
+
- spec/fixtures/topic.rb
|
68
|
+
- spec/fixtures/topics.yml
|
69
|
+
- spec/fixtures/user.rb
|
70
|
+
- spec/fixtures/users.yml
|
71
|
+
- spec/rcov.opts
|
72
|
+
- spec/spec.opts
|
73
|
+
- spec/spec_helper.rb
|
74
|
+
- spec/tasks.rake
|
75
|
+
- spec/view_helpers/action_view_spec.rb
|
76
|
+
- spec/view_helpers/base_spec.rb
|
77
|
+
- spec/view_helpers/link_renderer_base_spec.rb
|
78
|
+
- spec/view_helpers/view_example_group.rb
|
79
|
+
- README.rdoc
|
79
80
|
- LICENSE
|
80
81
|
- CHANGELOG.rdoc
|
81
82
|
has_rdoc: true
|
82
|
-
homepage:
|
83
|
-
licenses:
|
84
|
-
|
83
|
+
homepage: http://github.com/mislav/will_paginate/wikis
|
84
|
+
licenses: []
|
85
|
+
|
85
86
|
post_install_message:
|
86
87
|
rdoc_options:
|
87
88
|
- --main
|
88
|
-
- README.
|
89
|
+
- README.rdoc
|
89
90
|
- --charset=UTF-8
|
90
91
|
require_paths:
|
91
92
|
- lib
|
92
93
|
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
94
|
requirements:
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
hash: 3
|
98
|
-
segments:
|
99
|
-
- 0
|
100
97
|
version: "0"
|
98
|
+
version:
|
101
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
-
none: false
|
103
100
|
requirements:
|
104
|
-
- - "
|
101
|
+
- - ">"
|
105
102
|
- !ruby/object:Gem::Version
|
106
|
-
|
107
|
-
|
108
|
-
- 0
|
109
|
-
version: "0"
|
103
|
+
version: 1.3.1
|
104
|
+
version:
|
110
105
|
requirements: []
|
111
106
|
|
112
107
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.
|
108
|
+
rubygems_version: 1.3.5
|
114
109
|
signing_key:
|
115
110
|
specification_version: 3
|
116
|
-
summary:
|
111
|
+
summary: Adaptive pagination plugin for web frameworks and other applications
|
117
112
|
test_files: []
|
118
113
|
|
data/README.md
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
# will_paginate
|
2
|
-
|
3
|
-
will_paginate v2.3 is a pagination plugin for Rails and Active Record.
|
4
|
-
|
5
|
-
Installation:
|
6
|
-
|
7
|
-
~~~ ruby
|
8
|
-
## environment.rb
|
9
|
-
Rails::Initializer.run do |config|
|
10
|
-
config.gem 'will_paginate', :version => '~> 2.3.16'
|
11
|
-
end
|
12
|
-
~~~
|
13
|
-
|
14
|
-
See [installation instructions][install] on the wiki for more info.
|
15
|
-
|
16
|
-
|
17
|
-
## Basic will_paginate use
|
18
|
-
|
19
|
-
~~~ ruby
|
20
|
-
## perform a paginated query:
|
21
|
-
@posts = Post.paginate(:page => params[:page])
|
22
|
-
|
23
|
-
# or, use an explicit "per page" limit:
|
24
|
-
Post.paginate(:page => params[:page], :per_page => 30)
|
25
|
-
|
26
|
-
## render page links in the view:
|
27
|
-
<%= will_paginate @posts %>
|
28
|
-
~~~
|
29
|
-
|
30
|
-
And that's it! You're done. You just need to add some CSS styles to [make those pagination links prettier][css].
|
31
|
-
|
32
|
-
You can customize the default "per_page" value:
|
33
|
-
|
34
|
-
~~~ ruby
|
35
|
-
# for the Post model
|
36
|
-
class Post
|
37
|
-
self.per_page = 10
|
38
|
-
end
|
39
|
-
|
40
|
-
# set per_page globally
|
41
|
-
WillPaginate.per_page = 10
|
42
|
-
~~~
|
43
|
-
|
44
|
-
See [the wiki][wiki] for more documentation. [Ask on the group][group] if you have usage questions. [Report bugs][issues] on GitHub.
|
45
|
-
|
46
|
-
Happy paginating.
|
47
|
-
|
48
|
-
|
49
|
-
[wiki]: https://github.com/mislav/will_paginate/wiki
|
50
|
-
[install]: https://github.com/mislav/will_paginate/wiki/Installation "will_paginate installation"
|
51
|
-
[group]: http://groups.google.com/group/will_paginate "will_paginate discussion and support group"
|
52
|
-
[issues]: https://github.com/mislav/will_paginate/issues
|
53
|
-
[css]: http://mislav.uniqpath.com/will_paginate/
|