Module: Ro::Pagination
- Included in:
- Model::List
- Defined in:
- lib/ro/pagination.rb
Instance Method Summary collapse
- #current_page ⇒ Object
- #num_pages ⇒ Object
- #num_pages=(num_pages) ⇒ Object
- #page(*_args) ⇒ Object
- #page=(page) ⇒ Object
- #paginate(*args) ⇒ Object
- #per ⇒ Object
- #per=(per) ⇒ Object
- #total_pages ⇒ Object
Instance Method Details
#current_page ⇒ Object
31 32 33 |
# File 'lib/ro/pagination.rb', line 31 def current_page page end |
#num_pages ⇒ Object
48 49 50 51 |
# File 'lib/ro/pagination.rb', line 48 def num_pages paginate unless @num_pages @num_pages end |
#num_pages=(num_pages) ⇒ Object
44 45 46 |
# File 'lib/ro/pagination.rb', line 44 def num_pages=(num_pages) @num_pages = num_pages end |
#page(*_args) ⇒ Object
26 27 28 29 |
# File 'lib/ro/pagination.rb', line 26 def page(*_args) paginate unless @page @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) = Map.(args) page = Integer(args.shift || [:page] || 1) per = Integer(args.shift || [:per] || [:size] || 10) page = [page.abs, 1].max per = [per.abs, 1].max d 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 |
#per ⇒ Object
39 40 41 42 |
# File 'lib/ro/pagination.rb', line 39 def per paginate unless @per @per end |
#per=(per) ⇒ Object
35 36 37 |
# File 'lib/ro/pagination.rb', line 35 def per=(per) @per = per end |
#total_pages ⇒ Object
53 54 55 |
# File 'lib/ro/pagination.rb', line 53 def total_pages num_pages end |