Module: Ro::Pagination

Included in:
Model::List, Node::List
Defined in:
lib/ro/pagination.rb

Instance Method Summary collapse

Instance Method Details

#current_pageObject



30
31
32
# File 'lib/ro/pagination.rb', line 30

def current_page
  @page
end

#num_pagesObject



46
47
48
# File 'lib/ro/pagination.rb', line 46

def num_pages
  @num_pages
end

#num_pages=(num_pages) ⇒ Object



42
43
44
# File 'lib/ro/pagination.rb', line 42

def num_pages=(num_pages)
  @num_pages = num_pages
end

#page(*args) ⇒ Object



26
27
28
# File 'lib/ro/pagination.rb', line 26

def page(*args)
  @page
end

#page=(page) ⇒ Object



22
23
24
# File 'lib/ro/pagination.rb', line 22

def page=(page)
  @page = page
end

#paginate(*args) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ro/pagination.rb', line 3

def paginate(*args)
  options = Map.options_for!(args)

  page = Integer(args.shift || options[:page] || 1)
  per = Integer(args.shift || options[:per] || options[:size] || 10)

  page = [page.abs, 1].max
  per = [per.abs, 1].max

  offset = (page - 1) * per
  length = per 

  slice = dup.slice(offset, length)
  slice.page = page
  slice.per = per
  slice.num_pages = (size.to_f / per).ceil
  slice
end

#perObject



38
39
40
# File 'lib/ro/pagination.rb', line 38

def per
  @per
end

#per=(per) ⇒ Object



34
35
36
# File 'lib/ro/pagination.rb', line 34

def per=(per)
  @per = per
end

#total_pagesObject



50
51
52
# File 'lib/ro/pagination.rb', line 50

def total_pages
  num_pages
end