Class DataMapper::Pager
In: lib/dm-pager/pager.rb
lib/dm-pager/pager.rb
Parent: Object

Methods

new   new   to_html   to_html  

Attributes

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.

Public Class methods

Initialize with options.

[Source]

    # 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.

[Source]

    # 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

Public Instance methods

Render the pager with the given uri and options.

Examples

  User.page(2).pager.to_html('/users')
  User.page(2).pager.to_html('/users', :size => 3)

Options

  :size   Number of intermediate page number links to be shown; Defaults to 7

[Source]

    # 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.

Examples

  User.page(2).pager.to_html('/users')
  User.page(2).pager.to_html('/users', :size => 3)

Options

  :size   Number of intermediate page number links to be shown; Defaults to 7

[Source]

    # 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

[Validate]