Module: API::Helpers::PaginationStrategies
- Included in:
- API::Helpers
- Defined in:
- lib/api/helpers/pagination_strategies.rb
Instance Method Summary collapse
-
#paginate_with_strategies(relation, request_scope = nil, paginator_params: {}) ⇒ Object
paginator_params are only currently supported with offset pagination.
- #paginator(relation, request_scope = nil) ⇒ Object
Instance Method Details
#paginate_with_strategies(relation, request_scope = nil, paginator_params: {}) ⇒ Object
paginator_params are only currently supported with offset pagination
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/api/helpers/pagination_strategies.rb', line 7 def paginate_with_strategies(relation, request_scope = nil, paginator_params: {}) paginator = paginator(relation, request_scope) result = if block_given? yield(paginator.paginate(relation, **paginator_params)) else paginator.paginate(relation, **paginator_params) end result.tap do |records, _| paginator.finalize(records) end end |
#paginator(relation, request_scope = nil) ⇒ Object
21 22 23 24 25 |
# File 'lib/api/helpers/pagination_strategies.rb', line 21 def paginator(relation, request_scope = nil) return keyset_paginator(relation) if keyset_pagination_enabled? offset_paginator(relation, request_scope) end |