module Kaminari::PageScopeMethods
Public Instance Methods
current_page()
click to toggle source
Current page number
# File lib/kaminari/models/page_scope_methods.rb, line 37 def current_page offset_without_padding = offset_value offset_without_padding -= @_padding if defined?(@_padding) && @_padding offset_without_padding = 0 if offset_without_padding < 0 (offset_without_padding / limit_value) + 1 end
first_page?()
click to toggle source
First page of the collection?
# File lib/kaminari/models/page_scope_methods.rb, line 56 def first_page? current_page == 1 end
last_page?()
click to toggle source
Last page of the collection?
# File lib/kaminari/models/page_scope_methods.rb, line 61 def last_page? current_page >= total_pages end
next_page()
click to toggle source
Next page number in the collection
# File lib/kaminari/models/page_scope_methods.rb, line 46 def next_page current_page + 1 unless last_page? end
num_pages()
FIXME for compatibility. remove #num_pages at some time in the future
Alias for: total_pages
out_of_range?()
click to toggle source
Out of range of the collection?
# File lib/kaminari/models/page_scope_methods.rb, line 66 def out_of_range? current_page > total_pages end
padding(num)
click to toggle source
# File lib/kaminari/models/page_scope_methods.rb, line 15 def padding(num) @_padding = num offset(offset_value + num.to_i) end
per(num)
click to toggle source
Specify the per_page
value for the preceding page
scope
Model.page(3).per(10)
# File lib/kaminari/models/page_scope_methods.rb, line 5 def per(num) if (n = num.to_i) <= 0 self elsif max_per_page && max_per_page < n limit(max_per_page).offset(offset_value / limit_value * max_per_page) else limit(n).offset(offset_value / limit_value * n) end end
prev_page()
click to toggle source
Previous page number in the collection
# File lib/kaminari/models/page_scope_methods.rb, line 51 def prev_page current_page - 1 unless first_page? end
total_pages()
click to toggle source
Total number of pages
# File lib/kaminari/models/page_scope_methods.rb, line 21 def total_pages count_without_padding = total_count count_without_padding -= @_padding if defined?(@_padding) && @_padding count_without_padding = 0 if count_without_padding < 0 total_pages_count = (count_without_padding.to_f / limit_value).ceil if max_pages.present? && max_pages < total_pages_count max_pages else total_pages_count end end
Also aliased as: num_pages