Module: Noiseless::Pagination::ResponsePagination
- Included in:
- Response::Base
- Defined in:
- lib/noiseless/pagination.rb
Overview
Extend response classes with pagination support
Instance Method Summary collapse
- #current_page ⇒ Object
- #first_page? ⇒ Boolean
- #last_page? ⇒ Boolean
- #limit_value ⇒ Object
- #next_page ⇒ Object
- #offset_value ⇒ Object
- #out_of_range? ⇒ Boolean
- #pagination_metadata ⇒ Object
- #prev_page ⇒ Object
- #total_pages ⇒ Object
Instance Method Details
#current_page ⇒ Object
329 330 331 332 333 |
# File 'lib/noiseless/pagination.rb', line 329 def current_page return 1 unless @from && @per_page (@from / @per_page) + 1 end |
#first_page? ⇒ Boolean
343 344 345 |
# File 'lib/noiseless/pagination.rb', line 343 def first_page? current_page == 1 end |
#last_page? ⇒ Boolean
347 348 349 |
# File 'lib/noiseless/pagination.rb', line 347 def last_page? current_page >= total_pages end |
#limit_value ⇒ Object
355 356 357 |
# File 'lib/noiseless/pagination.rb', line 355 def limit_value @per_page end |
#next_page ⇒ Object
335 336 337 |
# File 'lib/noiseless/pagination.rb', line 335 def next_page current_page < total_pages ? current_page + 1 : nil end |
#offset_value ⇒ Object
359 360 361 |
# File 'lib/noiseless/pagination.rb', line 359 def offset_value @from || 0 end |
#out_of_range? ⇒ Boolean
351 352 353 |
# File 'lib/noiseless/pagination.rb', line 351 def out_of_range? current_page > total_pages end |
#pagination_metadata ⇒ Object
363 364 365 366 367 368 369 370 371 372 |
# File 'lib/noiseless/pagination.rb', line 363 def { current_page: current_page, per_page: @per_page, total_count: total, total_pages: total_pages, next_page: next_page, prev_page: prev_page } end |
#prev_page ⇒ Object
339 340 341 |
# File 'lib/noiseless/pagination.rb', line 339 def prev_page current_page > 1 ? current_page - 1 : nil end |
#total_pages ⇒ Object
323 324 325 326 327 |
# File 'lib/noiseless/pagination.rb', line 323 def total_pages return 1 if total.zero? || @per_page.nil? (total.to_f / @per_page).ceil end |