Module: SimplePaginator::ClassMethods

Defined in:
lib/simple_paginator.rb

Instance Method Summary collapse

Instance Method Details

#max_page(max_page) ⇒ Object



41
42
43
# File 'lib/simple_paginator.rb', line 41

def max_page(max_page)
  @max_page = max_page
end

#page_number(raw_page) ⇒ Object



33
34
35
# File 'lib/simple_paginator.rb', line 33

def page_number(raw_page)
  [raw_page.to_i, 1].max
end

#paged(page, options = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/simple_paginator.rb', line 18

def paged(page, options = {})
  num = page_number(page)
  per_page = options[:per_page].presence || @per_page
  max_page = options[:max_page].presence || @max_page

  if num > max_page
    scoped = none
  elsif num == max_page
    scoped = limit(per_page).offset((num-1)*per_page)
  else
    scoped = limit(per_page+1).offset((num-1)*per_page)
  end
  scoped
end

#per_page(per_page) ⇒ Object



37
38
39
# File 'lib/simple_paginator.rb', line 37

def per_page(per_page)
  @per_page = per_page
end