class DashOverlord::UseCases::V1::Shared::SearchAndPaginate::ApplyPagination
Constants
- PAGE_DEFAULT
- PER_PAGE_DEFAULT
Public Instance Methods
perform()
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 16 def perform context.page = fix_page(page) context.per_page = fix_per_page(per_page) page == 0 ? no_pagination : apply_pagination end
Protected Instance Methods
apply_pagination()
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 31 def apply_pagination context.resources = paginated_resources.page(page).per(per_page) context.page = resources.current_page end
fix_page(page)
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 37 def fix_page(page) page_or_nil = page.class == String ? page.presence : page (page_or_nil || PAGE_DEFAULT).to_i end
fix_per_page(per_page)
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 43 def fix_per_page(per_page) per_page_or_nil = \ per_page.class == String ? per_page.presence : per_page (per_page_or_nil || PER_PAGE_DEFAULT).to_i end
no_pagination()
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 25 def no_pagination context.per_page = 0 context.total_pages = 0 context.total_results = resources.count end
Private Instance Methods
paginated_resources()
click to toggle source
# File lib/dash_overlord/use_cases/v1/shared/search_and_paginate/apply_pagination.rb, line 52 def paginated_resources if resources.respond_to?(:page) resources else Kaminari.paginate_array(resources) end end