Class: Karafka::Web::Ui::Lib::Paginations::Paginators::Arrays

Inherits:
Base
  • Object
show all
Defined in:
lib/karafka/web/ui/lib/paginations/paginators/arrays.rb

Overview

A simple wrapper for paginating array related data structures We call this with plural (same with Sets) to avoid confusion with Ruby classes

Class Method Summary collapse

Methods inherited from Base

per_page

Class Method Details

.call(array, current_page) ⇒ Array<Array, Boolean>

Returns Array with two elements: first is the array with data of the given page and second is a boolean flag with info if the elements we got are from the last page.

Parameters:

  • array (Array)

    array we want to paginate

  • current_page (Integer)

    page we want to be on

Returns:

  • (Array<Array, Boolean>)

    Array with two elements: first is the array with data of the given page and second is a boolean flag with info if the elements we got are from the last page



19
20
21
22
23
24
25
# File 'lib/karafka/web/ui/lib/paginations/paginators/arrays.rb', line 19

def call(array, current_page)
  slices = array.each_slice(per_page).to_a
  current_data = slices[current_page - 1] || []
  last_page = !(slices.count >= current_page - 1 && current_data.size >= per_page)

  [current_data, last_page]
end