Class: DeliveryUncle::Paginate

Inherits:
Object
  • Object
show all
Defined in:
app/services/delivery_uncle/paginate.rb

Instance Method Summary collapse

Constructor Details

#initialize(per_page = 20) ⇒ Paginate

Returns a new instance of Paginate.



3
4
5
# File 'app/services/delivery_uncle/paginate.rb', line 3

def initialize(per_page=20)
  @per_page = per_page
end

Instance Method Details

#dataObject



17
18
19
# File 'app/services/delivery_uncle/paginate.rb', line 17

def data
  @model
end

#end_of_page?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'app/services/delivery_uncle/paginate.rb', line 31

def end_of_page?
  @page*@per_page > @size
end

#next_page_urlObject



26
27
28
29
# File 'app/services/delivery_uncle/paginate.rb', line 26

def next_page_url
  return nil if end_of_page?
  @params.merge(page: @page +1)
end

#page(model, params) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'app/services/delivery_uncle/paginate.rb', line 7

def page(model, params) 
  @page = params[:page].present? ? params[:page].to_i :  1
  @params = params
  start = (@page-1) * @per_page 
  start = 0 if start < 0
  @size = model.count
  @model = model.limit(@per_page).offset(start)
  self
end

#prev_page_urlObject



21
22
23
24
# File 'app/services/delivery_uncle/paginate.rb', line 21

def prev_page_url
  return nil unless @page > 1
  @params.merge({page: @page-1})
end