class ActionPager::Pager
Constants
- DEFAULTS
Attributes
collection[R]
current_page[R]
near[R]
options[R]
per_page[R]
Public Class Methods
new(collection, options={})
click to toggle source
# File lib/action_pager/pager.rb, line 9 def initialize(collection, options={}) @options = options opts = DEFAULTS.merge(options) @current_page = opts[:page] @per_page = opts[:per] @near = opts[:near] @collection = collection end
Public Instance Methods
bottom_gap?()
click to toggle source
show bottom (left) gap mark in pager?
# File lib/action_pager/pager.rb, line 129 def bottom_gap? near_pages.first > 1 end
collection_at(page)
click to toggle source
# File lib/action_pager/pager.rb, line 23 def collection_at(page) offset = offset_at(page) if collection.is_a?(Array) collection.drop(offset).first(per_page) else # for ActiveRecord::Relation and other OR mapper collections collection.offset(offset).limit(per_page) end end
collection_count()
click to toggle source
# File lib/action_pager/pager.rb, line 76 def collection_count @_collection_count ||= collection.count end
current_collection()
click to toggle source
# File lib/action_pager/pager.rb, line 32 def current_collection collection_at(current_page) end
current_offset()
click to toggle source
# File lib/action_pager/pager.rb, line 56 def current_offset offset_at(current_page) end
first_collection()
click to toggle source
# File lib/action_pager/pager.rb, line 36 def first_collection collection_at(first_page) end
first_offset()
click to toggle source
# File lib/action_pager/pager.rb, line 60 def first_offset offset_at(first_page) end
first_page()
click to toggle source
# File lib/action_pager/pager.rb, line 80 def first_page 1 end
first_page?()
click to toggle source
# File lib/action_pager/pager.rb, line 84 def first_page? current_page == 1 end
last_collection()
click to toggle source
# File lib/action_pager/pager.rb, line 40 def last_collection collection_at(last_page) end
last_offset()
click to toggle source
# File lib/action_pager/pager.rb, line 64 def last_offset offset_at(last_page) end
last_page()
click to toggle source
# File lib/action_pager/pager.rb, line 88 def last_page @last_page ||= collection_count / per_page + 1 end
Also aliased as: total_pages
last_page?()
click to toggle source
# File lib/action_pager/pager.rb, line 93 def last_page? current_page == last_page end
near_pages()
click to toggle source
pages that numbers are displayed
# File lib/action_pager/pager.rb, line 112 def near_pages @near_pages ||= begin if current_page <= near + 1 upper_page = shown_page_count >= last_page ? last_page : shown_page_count 1..upper_page elsif current_page >= last_page - near - 1 bottom_page = last_page - shown_page_count + 1 (bottom_page > 1 ? bottom_page : 1)..last_page else bottom_page = current_page - near upper_page = current_page + near (bottom_page > 1 ? bottom_page : 1)..(upper_page < last_page ? upper_page : last_page) end end end
next_collection()
click to toggle source
# File lib/action_pager/pager.rb, line 48 def next_collection collection_at(next_page) end
next_offset()
click to toggle source
# File lib/action_pager/pager.rb, line 72 def next_offset offset_at(next_page) end
next_page()
click to toggle source
# File lib/action_pager/pager.rb, line 102 def next_page page = current_page + 1 page <= last_page ? page : nil end
offset_at(page)
click to toggle source
# File lib/action_pager/pager.rb, line 52 def offset_at(page) (page - 1) * per_page end
prev_collection()
click to toggle source
# File lib/action_pager/pager.rb, line 44 def prev_collection collection_at(prev_page) end
prev_offset()
click to toggle source
# File lib/action_pager/pager.rb, line 68 def prev_offset offset_at(prev_page) end
prev_page()
click to toggle source
# File lib/action_pager/pager.rb, line 97 def prev_page page = current_page - 1 page >= 1 ? page : nil end
scoped()
click to toggle source
# File lib/action_pager/pager.rb, line 18 def scoped warn "[DEPRECATION] `scoped` is deprecated. Please use `current_collection` instead." current_collection end
shown_page_count()
click to toggle source
# File lib/action_pager/pager.rb, line 107 def shown_page_count near * 2 + 1 end
upper_gap?()
click to toggle source
show upper (right) gap mark in pager?
# File lib/action_pager/pager.rb, line 134 def upper_gap? near_pages.last < last_page end