class PageUp::Pages
Attributes
page[R]
per_page[R]
Public Class Methods
new(collection, page, per_page, opts = {})
click to toggle source
Calls superclass method
# File lib/page_up/pages.rb, line 5 def initialize collection, page, per_page, opts = {} @page = parse page, 1 @per_page = parse per_page, 25 @origin = collection @opts = opts super (collection[page_range] || []) end
Public Instance Methods
current_slice()
click to toggle source
# File lib/page_up/pages.rb, line 25 def current_slice slice_start..slice_end end
pages()
click to toggle source
# File lib/page_up/pages.rb, line 17 def pages if total_size > 0 (total_size.to_f / per_page).ceil else 1 end end
total_size()
click to toggle source
# File lib/page_up/pages.rb, line 13 def total_size @opts.fetch(:total_size) { @origin.size } end
Private Instance Methods
current_page()
click to toggle source
# File lib/page_up/pages.rb, line 37 def current_page (page-1)*per_page end
page_range()
click to toggle source
# File lib/page_up/pages.rb, line 33 def page_range current_page...current_page+per_page end
parse(value, default)
click to toggle source
# File lib/page_up/pages.rb, line 41 def parse value, default Integer(value) rescue TypeError default end
slice_end()
click to toggle source
# File lib/page_up/pages.rb, line 56 def slice_end if page + 2 > pages || pages < 5 pages elsif page - 2 <= 0 5 else page + 2 end end
slice_start()
click to toggle source
# File lib/page_up/pages.rb, line 47 def slice_start start = if page + 2 > pages pages - 4 else page - 2 end start > 0 ? start : 1 end