Class: PageUp::Pages

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/page_up/pages.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(collection, page, per_page, opts = {}) ⇒ Pages

Returns a new instance of Pages.



5
6
7
8
9
10
11
# 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

Instance Attribute Details

#pageObject (readonly)

Returns the value of attribute page.



29
30
31
# File 'lib/page_up/pages.rb', line 29

def page
  @page
end

#per_pageObject (readonly)

Returns the value of attribute per_page.



29
30
31
# File 'lib/page_up/pages.rb', line 29

def per_page
  @per_page
end

Instance Method Details

#current_sliceObject



25
26
27
# File 'lib/page_up/pages.rb', line 25

def current_slice
  slice_start..slice_end
end

#pagesObject



17
18
19
20
21
22
23
# 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_sizeObject



13
14
15
# File 'lib/page_up/pages.rb', line 13

def total_size
  @opts.fetch(:total_size) { @origin.size }
end