Class | DataMapper::Pager |
In: |
lib/dm-pager/pager.rb
lib/dm-pager/pager.rb |
Parent: | Object |
current_page | [R] | Current page number. |
current_page | [R] | Current page number. |
next_page | [R] | Next page or nil when no more pages are available. |
next_page | [R] | Next page or nil when no more pages are available. |
per_page | [R] | Records per page. |
per_page | [R] | Records per page. |
previous_page | [R] | Previous page or nil when no previous page is available. |
previous_page | [R] | Previous page or nil when no previous page is available. |
total | [R] | Total number of un-limited records. |
total | [R] | Total number of un-limited records. |
total_pages | [R] | Total number of pages. |
total_pages | [R] | Total number of pages. |
Initialize with options.
# File lib/dm-pager/pager.rb, line 38 38: def initialize options = {} 39: @page_param = options.delete(:page_param) || :page 40: @total = options.delete :total 41: @per_page = options.delete :limit 42: @current_page = options.delete @page_param 43: @total_pages = total.quo(per_page).ceil 44: @next_page = current_page + 1 unless current_page >= total_pages 45: @previous_page = current_page - 1 unless current_page <= 1 46: end
Initialize with options.
# File lib/dm-pager/pager.rb, line 38 38: def initialize options = {} 39: @page_param = options.delete(:page_param) || :page 40: @total = options.delete :total 41: @per_page = options.delete :limit 42: @current_page = options.delete @page_param 43: @total_pages = total.quo(per_page).ceil 44: @next_page = current_page + 1 unless current_page >= total_pages 45: @previous_page = current_page - 1 unless current_page <= 1 46: end
Render the pager with the given uri and options.
User.page(2).pager.to_html('/users') User.page(2).pager.to_html('/users', :size => 3)
:size Number of intermediate page number links to be shown; Defaults to 7
# File lib/dm-pager/pager.rb, line 61 61: def to_html uri, options = {} 62: return unless total_pages > 1 63: @uri, @options = uri, options 64: @size = option :size 65: raise ArgumentError, 'invalid :size; must be an odd number' if @size % 2 == 0 66: @size /= 2 67: [%(<ul class="#{Pagination.defaults[:pager_class]}">), 68: first_link, 69: previous_link, 70: more(:before), 71: intermediate_links.join("\n"), 72: more(:after), 73: next_link, 74: last_link, 75: '</ul>'].join 76: end
Render the pager with the given uri and options.
User.page(2).pager.to_html('/users') User.page(2).pager.to_html('/users', :size => 3)
:size Number of intermediate page number links to be shown; Defaults to 7
# File lib/dm-pager/pager.rb, line 61 61: def to_html uri, options = {} 62: return unless total_pages > 1 63: @uri, @options = uri, options 64: @size = option :size 65: raise ArgumentError, 'invalid :size; must be an odd number' if @size % 2 == 0 66: @size /= 2 67: [%(<ul class="#{Pagination.defaults[:pager_class]}">), 68: first_link, 69: previous_link, 70: more(:before), 71: intermediate_links.join("\n"), 72: more(:after), 73: next_link, 74: last_link, 75: '</ul>'].join 76: end