will_paginate 3.0.4 → 4.0.0

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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +7 -10
  3. data/lib/will_paginate/active_record.rb +18 -17
  4. data/lib/will_paginate/deprecation.rb +3 -3
  5. data/lib/will_paginate/i18n.rb +3 -3
  6. data/lib/will_paginate/locale/en.yml +4 -0
  7. data/lib/will_paginate/mongoid.rb +48 -0
  8. data/lib/will_paginate/page_number.rb +7 -11
  9. data/lib/will_paginate/railtie.rb +19 -13
  10. data/lib/will_paginate/version.rb +2 -2
  11. data/lib/will_paginate/view_helpers/action_view.rb +12 -5
  12. data/lib/will_paginate/view_helpers/hanami.rb +41 -0
  13. data/lib/will_paginate/view_helpers/link_renderer.rb +23 -17
  14. data/lib/will_paginate/view_helpers/link_renderer_base.rb +1 -1
  15. data/lib/will_paginate/view_helpers.rb +3 -1
  16. data/lib/will_paginate.rb +0 -12
  17. metadata +29 -58
  18. data/Rakefile +0 -25
  19. data/lib/will_paginate/data_mapper.rb +0 -95
  20. data/lib/will_paginate/view_helpers/merb.rb +0 -26
  21. data/spec/ci.rb +0 -29
  22. data/spec/collection_spec.rb +0 -139
  23. data/spec/console +0 -12
  24. data/spec/console_fixtures.rb +0 -28
  25. data/spec/database.yml +0 -22
  26. data/spec/finders/active_record_spec.rb +0 -556
  27. data/spec/finders/activerecord_test_connector.rb +0 -115
  28. data/spec/finders/data_mapper_spec.rb +0 -103
  29. data/spec/finders/data_mapper_test_connector.rb +0 -54
  30. data/spec/finders/sequel_spec.rb +0 -67
  31. data/spec/finders/sequel_test_connector.rb +0 -15
  32. data/spec/fixtures/admin.rb +0 -3
  33. data/spec/fixtures/developer.rb +0 -13
  34. data/spec/fixtures/developers_projects.yml +0 -13
  35. data/spec/fixtures/project.rb +0 -15
  36. data/spec/fixtures/projects.yml +0 -6
  37. data/spec/fixtures/replies.yml +0 -29
  38. data/spec/fixtures/reply.rb +0 -9
  39. data/spec/fixtures/schema.rb +0 -38
  40. data/spec/fixtures/topic.rb +0 -7
  41. data/spec/fixtures/topics.yml +0 -30
  42. data/spec/fixtures/user.rb +0 -2
  43. data/spec/fixtures/users.yml +0 -35
  44. data/spec/page_number_spec.rb +0 -65
  45. data/spec/per_page_spec.rb +0 -41
  46. data/spec/spec_helper.rb +0 -71
  47. data/spec/view_helpers/action_view_spec.rb +0 -423
  48. data/spec/view_helpers/base_spec.rb +0 -130
  49. data/spec/view_helpers/link_renderer_base_spec.rb +0 -87
  50. data/spec/view_helpers/view_example_group.rb +0 -121
@@ -1,423 +0,0 @@
1
- require 'spec_helper'
2
- require 'active_support/rescuable' # needed for Ruby 1.9.1
3
- require 'action_controller'
4
- require 'will_paginate/view_helpers/action_view'
5
- require 'will_paginate/collection'
6
-
7
- Routes = ActionDispatch::Routing::RouteSet.new
8
-
9
- Routes.draw do
10
- get 'dummy/page/:page' => 'dummy#index'
11
- get 'dummy/dots/page.:page' => 'dummy#dots'
12
- get 'ibocorp(/:page)' => 'ibocorp#index',
13
- :constraints => { :page => /\d+/ }, :defaults => { :page => 1 }
14
-
15
- get ':controller(/:action(/:id(.:format)))'
16
- end
17
-
18
- describe WillPaginate::ActionView do
19
-
20
- before(:all) do
21
- I18n.load_path.concat WillPaginate::I18n.load_path
22
- end
23
-
24
- before(:each) do
25
- I18n.reload!
26
- end
27
-
28
- before(:each) do
29
- @assigns = {}
30
- @controller = DummyController.new
31
- @request = @controller.request
32
- @template = '<%= will_paginate collection, options %>'
33
- end
34
-
35
- attr_reader :assigns, :controller, :request
36
-
37
- def render(locals)
38
- @view = ActionView::Base.new([], @assigns, @controller)
39
- @view.request = @request
40
- @view.singleton_class.send(:include, @controller._routes.url_helpers)
41
- @view.render(:inline => @template, :locals => locals)
42
- end
43
-
44
- ## basic pagination ##
45
-
46
- it "should render" do
47
- paginate do |pagination|
48
- assert_select 'a[href]', 3 do |elements|
49
- validate_page_numbers [2,3,2], elements
50
- assert_select elements.last, ':last-child', "Next &#8594;"
51
- end
52
- assert_select 'span', 1
53
- assert_select 'span.disabled:first-child', '&#8592; Previous'
54
- assert_select 'em.current', '1'
55
- pagination.first.inner_text.should == '&#8592; Previous 1 2 3 Next &#8594;'
56
- end
57
- end
58
-
59
- it "should render nothing when there is only 1 page" do
60
- paginate(:per_page => 30).should be_empty
61
- end
62
-
63
- it "should paginate with options" do
64
- paginate({ :page => 2 }, :class => 'will_paginate', :previous_label => 'Prev', :next_label => 'Next') do
65
- assert_select 'a[href]', 4 do |elements|
66
- validate_page_numbers [1,1,3,3], elements
67
- # test rel attribute values:
68
- assert_select elements[1], 'a', '1' do |link|
69
- link.first['rel'].should == 'prev start'
70
- end
71
- assert_select elements.first, 'a', "Prev" do |link|
72
- link.first['rel'].should == 'prev start'
73
- end
74
- assert_select elements.last, 'a', "Next" do |link|
75
- link.first['rel'].should == 'next'
76
- end
77
- end
78
- assert_select '.current', '2'
79
- end
80
- end
81
-
82
- it "should paginate using a custom renderer class" do
83
- paginate({}, :renderer => AdditionalLinkAttributesRenderer) do
84
- assert_select 'a[default=true]', 3
85
- end
86
- end
87
-
88
- it "should paginate using a custom renderer instance" do
89
- renderer = WillPaginate::ActionView::LinkRenderer.new
90
- def renderer.gap() '<span class="my-gap">~~</span>' end
91
-
92
- paginate({ :per_page => 2 }, :inner_window => 0, :outer_window => 0, :renderer => renderer) do
93
- assert_select 'span.my-gap', '~~'
94
- end
95
-
96
- renderer = AdditionalLinkAttributesRenderer.new(:title => 'rendered')
97
- paginate({}, :renderer => renderer) do
98
- assert_select 'a[title=rendered]', 3
99
- end
100
- end
101
-
102
- it "should have classnames on previous/next links" do
103
- paginate do |pagination|
104
- assert_select 'span.disabled.previous_page:first-child'
105
- assert_select 'a.next_page[href]:last-child'
106
- end
107
- end
108
-
109
- it "should match expected markup" do
110
- paginate
111
- expected = <<-HTML
112
- <div class="pagination"><span class="previous_page disabled">&#8592; Previous</span>
113
- <em class="current">1</em>
114
- <a href="/foo/bar?page=2" rel="next">2</a>
115
- <a href="/foo/bar?page=3">3</a>
116
- <a href="/foo/bar?page=2" class="next_page" rel="next">Next &#8594;</a></div>
117
- HTML
118
- expected.strip!.gsub!(/\s{2,}/, ' ')
119
- expected_dom = HTML::Document.new(expected).root
120
-
121
- html_document.root.should == expected_dom
122
- end
123
-
124
- it "should output escaped URLs" do
125
- paginate({:page => 1, :per_page => 1, :total_entries => 2},
126
- :page_links => false, :params => { :tag => '<br>' })
127
-
128
- assert_select 'a[href]', 1 do |links|
129
- query = links.first['href'].split('?', 2)[1]
130
- query.split('&amp;').sort.should == %w(page=2 tag=%3Cbr%3E)
131
- end
132
- end
133
-
134
- ## advanced options for pagination ##
135
-
136
- it "should be able to render without container" do
137
- paginate({}, :container => false)
138
- assert_select 'div.pagination', 0, 'main DIV present when it shouldn\'t'
139
- assert_select 'a[href]', 3
140
- end
141
-
142
- it "should be able to render without page links" do
143
- paginate({ :page => 2 }, :page_links => false) do
144
- assert_select 'a[href]', 2 do |elements|
145
- validate_page_numbers [1,3], elements
146
- end
147
- end
148
- end
149
-
150
- ## other helpers ##
151
-
152
- it "should render a paginated section" do
153
- @template = <<-ERB
154
- <%= paginated_section collection, options do %>
155
- <%= content_tag :div, '', :id => "developers" %>
156
- <% end %>
157
- ERB
158
-
159
- paginate
160
- assert_select 'div.pagination', 2
161
- assert_select 'div.pagination + div#developers', 1
162
- end
163
-
164
- it "should not render a paginated section with a single page" do
165
- @template = <<-ERB
166
- <%= paginated_section collection, options do %>
167
- <%= content_tag :div, '', :id => "developers" %>
168
- <% end %>
169
- ERB
170
-
171
- paginate(:total_entries => 1)
172
- assert_select 'div.pagination', 0
173
- assert_select 'div#developers', 1
174
- end
175
-
176
- ## parameter handling in page links ##
177
-
178
- it "should preserve parameters on GET" do
179
- request.params :foo => { :bar => 'baz' }
180
- paginate
181
- assert_links_match /foo\[bar\]=baz/
182
- end
183
-
184
- it "should not preserve parameters on POST" do
185
- request.post
186
- request.params :foo => 'bar'
187
- paginate
188
- assert_no_links_match /foo=bar/
189
- end
190
-
191
- it "should add additional parameters to links" do
192
- paginate({}, :params => { :foo => 'bar' })
193
- assert_links_match /foo=bar/
194
- end
195
-
196
- it "should add anchor parameter" do
197
- paginate({}, :params => { :anchor => 'anchor' })
198
- assert_links_match /#anchor$/
199
- end
200
-
201
- it "should remove arbitrary parameters" do
202
- request.params :foo => 'bar'
203
- paginate({}, :params => { :foo => nil })
204
- assert_no_links_match /foo=bar/
205
- end
206
-
207
- it "should override default route parameters" do
208
- paginate({}, :params => { :controller => 'baz', :action => 'list' })
209
- assert_links_match %r{\Wbaz/list\W}
210
- end
211
-
212
- it "should paginate with custom page parameter" do
213
- paginate({ :page => 2 }, :param_name => :developers_page) do
214
- assert_select 'a[href]', 4 do |elements|
215
- validate_page_numbers [1,1,3,3], elements, :developers_page
216
- end
217
- end
218
- end
219
-
220
- it "should paginate with complex custom page parameter" do
221
- request.params :developers => { :page => 2 }
222
-
223
- paginate({ :page => 2 }, :param_name => 'developers[page]') do
224
- assert_select 'a[href]', 4 do |links|
225
- assert_links_match /\?developers\[page\]=\d+$/, links
226
- validate_page_numbers [1,1,3,3], links, 'developers[page]'
227
- end
228
- end
229
- end
230
-
231
- it "should paginate with custom route page parameter" do
232
- request.symbolized_path_parameters.update :controller => 'dummy', :action => nil
233
- paginate :per_page => 2 do
234
- assert_select 'a[href]', 6 do |links|
235
- assert_links_match %r{/page/(\d+)$}, links, [2, 3, 4, 5, 6, 2]
236
- end
237
- end
238
- end
239
-
240
- it "should paginate with custom route with dot separator page parameter" do
241
- request.symbolized_path_parameters.update :controller => 'dummy', :action => 'dots'
242
- paginate :per_page => 2 do
243
- assert_select 'a[href]', 6 do |links|
244
- assert_links_match %r{/page\.(\d+)$}, links, [2, 3, 4, 5, 6, 2]
245
- end
246
- end
247
- end
248
-
249
- it "should paginate with custom route and first page number implicit" do
250
- request.symbolized_path_parameters.update :controller => 'ibocorp', :action => nil
251
- paginate :page => 2, :per_page => 2 do
252
- assert_select 'a[href]', 7 do |links|
253
- assert_links_match %r{/ibocorp(?:/(\d+))?$}, links, [nil, nil, 3, 4, 5, 6, 3]
254
- end
255
- end
256
- # Routes.recognize_path('/ibocorp/2').should == {:page=>'2', :action=>'index', :controller=>'ibocorp'}
257
- # Routes.recognize_path('/ibocorp/foo').should == {:action=>'foo', :controller=>'ibocorp'}
258
- end
259
-
260
- ## internal hardcore stuff ##
261
-
262
- it "should be able to guess the collection name" do
263
- collection = mock
264
- collection.expects(:total_pages).returns(1)
265
-
266
- @template = '<%= will_paginate options %>'
267
- controller.controller_name = 'developers'
268
- assigns['developers'] = collection
269
-
270
- paginate(nil)
271
- end
272
-
273
- it "should fail if the inferred collection is nil" do
274
- @template = '<%= will_paginate options %>'
275
- controller.controller_name = 'developers'
276
-
277
- lambda {
278
- paginate(nil)
279
- }.should raise_error(ActionView::TemplateError, /@developers/)
280
- end
281
-
282
- ## i18n
283
-
284
- it "is able to translate previous/next labels" do
285
- translation :will_paginate => {
286
- :previous_label => 'Go back',
287
- :next_label => 'Load more'
288
- }
289
-
290
- paginate do |pagination|
291
- assert_select 'span.disabled:first-child', 'Go back'
292
- assert_select 'a[rel=next]', 'Load more'
293
- end
294
- end
295
-
296
- it "renders using ActionView helpers on a custom object" do
297
- helper = Object.new
298
- class << helper
299
- attr_reader :controller
300
- include ActionView::Helpers::UrlHelper
301
- include Routes.url_helpers
302
- include WillPaginate::ActionView
303
- end
304
- helper.default_url_options[:controller] = 'dummy'
305
-
306
- collection = WillPaginate::Collection.new(2, 1, 3)
307
- @render_output = helper.will_paginate(collection)
308
-
309
- assert_select 'a[href]', 4 do |links|
310
- urls = links.map {|l| l['href'] }.uniq
311
- urls.should == ['/dummy/page/1', '/dummy/page/3']
312
- end
313
- end
314
-
315
- it "renders using ActionDispatch helper on a custom object" do
316
- helper = Object.new
317
- class << helper
318
- include ActionDispatch::Routing::UrlFor
319
- include Routes.url_helpers
320
- include WillPaginate::ActionView
321
- end
322
- helper.default_url_options[:host] = 'example.com'
323
- helper.default_url_options[:controller] = 'dummy'
324
- # helper.default_url_options[:only_path] = true
325
-
326
- collection = WillPaginate::Collection.new(2, 1, 3)
327
- @render_output = helper.will_paginate(collection)
328
-
329
- assert_select 'a[href]', 4 do |links|
330
- urls = links.map {|l| l['href'] }.uniq
331
- urls.should == ['http://example.com/dummy/page/1', 'http://example.com/dummy/page/3']
332
- end
333
- end
334
-
335
- private
336
-
337
- def translation(data)
338
- I18n.available_locales # triggers loading existing translations
339
- I18n.backend.store_translations(:en, data)
340
- end
341
- end
342
-
343
- class AdditionalLinkAttributesRenderer < WillPaginate::ActionView::LinkRenderer
344
- def initialize(link_attributes = nil)
345
- super()
346
- @additional_link_attributes = link_attributes || { :default => 'true' }
347
- end
348
-
349
- def link(text, target, attributes = {})
350
- super(text, target, attributes.merge(@additional_link_attributes))
351
- end
352
- end
353
-
354
- class DummyController
355
- attr_reader :request
356
- attr_accessor :controller_name
357
-
358
- include ActionController::UrlFor
359
- include Routes.url_helpers
360
-
361
- def initialize
362
- @request = DummyRequest.new
363
- end
364
-
365
- def params
366
- @request.params
367
- end
368
-
369
- def env
370
- {}
371
- end
372
-
373
- def _prefixes
374
- []
375
- end
376
- end
377
-
378
- class IbocorpController < DummyController
379
- end
380
-
381
- class DummyRequest
382
- attr_accessor :symbolized_path_parameters
383
-
384
- def initialize
385
- @get = true
386
- @params = {}
387
- @symbolized_path_parameters = { :controller => 'foo', :action => 'bar' }
388
- end
389
-
390
- def get?
391
- @get
392
- end
393
-
394
- def post
395
- @get = false
396
- end
397
-
398
- def relative_url_root
399
- ''
400
- end
401
-
402
- def script_name
403
- ''
404
- end
405
-
406
- def params(more = nil)
407
- @params.update(more) if more
408
- @params
409
- end
410
-
411
- def host_with_port
412
- 'example.com'
413
- end
414
- alias host host_with_port
415
-
416
- def optional_port
417
- ''
418
- end
419
-
420
- def protocol
421
- 'http:'
422
- end
423
- end
@@ -1,130 +0,0 @@
1
- require 'spec_helper'
2
- require 'will_paginate/view_helpers'
3
- require 'will_paginate/array'
4
- require 'active_support'
5
- require 'active_support/core_ext/string/inflections'
6
- require 'active_support/inflections'
7
-
8
- describe WillPaginate::ViewHelpers do
9
-
10
- before(:all) do
11
- # make sure default translations aren't loaded
12
- I18n.load_path.clear
13
- end
14
-
15
- before(:each) do
16
- I18n.reload!
17
- end
18
-
19
- include WillPaginate::ViewHelpers
20
-
21
- describe "will_paginate" do
22
- it "should render" do
23
- collection = WillPaginate::Collection.new(1, 2, 4)
24
- renderer = mock 'Renderer'
25
- renderer.expects(:prepare).with(collection, instance_of(Hash), self)
26
- renderer.expects(:to_html).returns('<PAGES>')
27
-
28
- will_paginate(collection, :renderer => renderer).should == '<PAGES>'
29
- end
30
-
31
- it "should return nil for single-page collections" do
32
- collection = mock 'Collection', :total_pages => 1
33
- will_paginate(collection).should be_nil
34
- end
35
- end
36
-
37
- describe "pagination_options" do
38
- let(:pagination_options) { WillPaginate::ViewHelpers.pagination_options }
39
-
40
- it "deprecates setting :renderer" do
41
- begin
42
- lambda {
43
- pagination_options[:renderer] = 'test'
44
- }.should have_deprecation("pagination_options[:renderer] shouldn't be set")
45
- ensure
46
- pagination_options.delete :renderer
47
- end
48
- end
49
- end
50
-
51
- describe "page_entries_info" do
52
- before :all do
53
- @array = ('a'..'z').to_a
54
- end
55
-
56
- def info(params, options = {})
57
- collection = Hash === params ? @array.paginate(params) : params
58
- page_entries_info collection, {:html => false}.merge(options)
59
- end
60
-
61
- it "should display middle results and total count" do
62
- info(:page => 2, :per_page => 5).should == "Displaying strings 6 - 10 of 26 in total"
63
- end
64
-
65
- it "uses translation if available" do
66
- translation :will_paginate => {
67
- :page_entries_info => {:multi_page => 'Showing %{from} - %{to}'}
68
- }
69
- info(:page => 2, :per_page => 5).should == "Showing 6 - 10"
70
- end
71
-
72
- it "uses specific translation if available" do
73
- translation :will_paginate => {
74
- :page_entries_info => {:multi_page => 'Showing %{from} - %{to}'},
75
- :string => { :page_entries_info => {:multi_page => 'Strings %{from} to %{to}'} }
76
- }
77
- info(:page => 2, :per_page => 5).should == "Strings 6 to 10"
78
- end
79
-
80
- it "should output HTML by default" do
81
- info({ :page => 2, :per_page => 5 }, :html => true).should ==
82
- "Displaying strings <b>6&nbsp;-&nbsp;10</b> of <b>26</b> in total"
83
- end
84
-
85
- it "should display shortened end results" do
86
- info(:page => 7, :per_page => 4).should include_phrase('strings 25 - 26')
87
- end
88
-
89
- it "should handle longer class names" do
90
- collection = @array.paginate(:page => 2, :per_page => 5)
91
- model = stub('Class', :name => 'ProjectType', :to_s => 'ProjectType')
92
- collection.first.stubs(:class).returns(model)
93
- info(collection).should include_phrase('project types')
94
- end
95
-
96
- it "should adjust output for single-page collections" do
97
- info(('a'..'d').to_a.paginate(:page => 1, :per_page => 5)).should == "Displaying all 4 strings"
98
- info(['a'].paginate(:page => 1, :per_page => 5)).should == "Displaying 1 string"
99
- end
100
-
101
- it "should display 'no entries found' for empty collections" do
102
- info([].paginate(:page => 1, :per_page => 5)).should == "No entries found"
103
- end
104
-
105
- it "uses model_name.human when available" do
106
- name = stub('model name', :i18n_key => :flower_key)
107
- name.expects(:human).with(:count => 1).returns('flower')
108
- model = stub('Class', :model_name => name)
109
- collection = [1].paginate(:page => 1)
110
-
111
- info(collection, :model => model).should == "Displaying 1 flower"
112
- end
113
-
114
- it "uses custom translation instead of model_name.human" do
115
- name = stub('model name', :i18n_key => :flower_key)
116
- name.expects(:human).never
117
- model = stub('Class', :model_name => name)
118
- translation :will_paginate => {:models => {:flower_key => 'tulip'}}
119
- collection = [1].paginate(:page => 1)
120
-
121
- info(collection, :model => model).should == "Displaying 1 tulip"
122
- end
123
-
124
- private
125
-
126
- def translation(data)
127
- I18n.backend.store_translations(:en, data)
128
- end
129
- end
130
- end
@@ -1,87 +0,0 @@
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 = described_class.new
9
- end
10
-
11
- it "should raise error when unprepared" do
12
- lambda {
13
- @renderer.pagination
14
- }.should raise_error
15
- end
16
-
17
- it "should prepare with collection and options" do
18
- prepare({})
19
- @renderer.send(:current_page).should == 1
20
- end
21
-
22
- it "should have total_pages accessor" do
23
- prepare :total_pages => 42
24
- @renderer.send(:total_pages).should == 42
25
- end
26
-
27
- it "should clear old cached values when prepared" do
28
- prepare(:total_pages => 1)
29
- @renderer.send(:total_pages).should == 1
30
- # prepare with different object:
31
- prepare(:total_pages => 2)
32
- @renderer.send(:total_pages).should == 2
33
- end
34
-
35
- it "should have pagination definition" do
36
- prepare({ :total_pages => 1 }, :page_links => true)
37
- @renderer.pagination.should == [:previous_page, 1, :next_page]
38
- end
39
-
40
- describe "visible page numbers" do
41
- it "should calculate windowed visible links" do
42
- prepare({ :page => 6, :total_pages => 11 }, :inner_window => 1, :outer_window => 1)
43
- showing_pages 1, 2, :gap, 5, 6, 7, :gap, 10, 11
44
- end
45
-
46
- it "should eliminate small gaps" do
47
- prepare({ :page => 6, :total_pages => 11 }, :inner_window => 2, :outer_window => 1)
48
- # pages 4 and 8 appear instead of the gap
49
- showing_pages 1..11
50
- end
51
-
52
- it "should support having no windows at all" do
53
- prepare({ :page => 4, :total_pages => 7 }, :inner_window => 0, :outer_window => 0)
54
- showing_pages 1, :gap, 4, :gap, 7
55
- end
56
-
57
- it "should adjust upper limit if lower is out of bounds" do
58
- prepare({ :page => 1, :total_pages => 10 }, :inner_window => 2, :outer_window => 1)
59
- showing_pages 1, 2, 3, 4, 5, :gap, 9, 10
60
- end
61
-
62
- it "should adjust lower limit if upper is out of bounds" do
63
- prepare({ :page => 10, :total_pages => 10 }, :inner_window => 2, :outer_window => 1)
64
- showing_pages 1, 2, :gap, 6, 7, 8, 9, 10
65
- end
66
-
67
- def showing_pages(*pages)
68
- pages = pages.first.to_a if Array === pages.first or Range === pages.first
69
- @renderer.send(:windowed_page_numbers).should == pages
70
- end
71
- end
72
-
73
- protected
74
-
75
- def collection(params = {})
76
- if params[:total_pages]
77
- params[:per_page] = 1
78
- params[:total_entries] = params[:total_pages]
79
- end
80
- WillPaginate::Collection.new(params[:page] || 1, params[:per_page] || 30, params[:total_entries])
81
- end
82
-
83
- def prepare(collection_options, options = {})
84
- @renderer.prepare(collection(collection_options), options)
85
- end
86
-
87
- end