Class: DeliveryUncle::Paginate
- Inherits:
-
Object
- Object
- DeliveryUncle::Paginate
- Defined in:
- app/services/delivery_uncle/paginate.rb
Instance Method Summary collapse
- #data ⇒ Object
- #end_of_page? ⇒ Boolean
-
#initialize(per_page = 20) ⇒ Paginate
constructor
A new instance of Paginate.
- #next_page_url ⇒ Object
- #page(model, params) ⇒ Object
- #prev_page_url ⇒ Object
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
#data ⇒ Object
17 18 19 |
# File 'app/services/delivery_uncle/paginate.rb', line 17 def data @model end |
#end_of_page? ⇒ Boolean
31 32 33 |
# File 'app/services/delivery_uncle/paginate.rb', line 31 def end_of_page? @page*@per_page > @size end |
#next_page_url ⇒ Object
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_url ⇒ Object
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 |