Module: Ro::Pagination
- Included in:
- Model::List, Node::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
30 31 32 |
# File 'lib/ro/pagination.rb', line 30 def current_page @page end |
#num_pages ⇒ Object
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) = 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 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
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_pages ⇒ Object
50 51 52 |
# File 'lib/ro/pagination.rb', line 50 def total_pages num_pages end |