9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/pagy/toolbox/paginators/meilisearch.rb', line 9
def paginate(search, options)
if search.is_a?(Search::Arguments)
Searcher.wrap(search, options) do
model, arguments, search_options = search
search_options[:hits_per_page] = options[:limit]
search_options[:page] = options[:page]
method = options[:search_method] || Meilisearch::DEFAULT[:search_method]
results = model.send(method, *arguments, search_options)
options[:count] = results.raw_answer['totalHits']
[Meilisearch.new(**options), results]
end
else options[:limit] = search.raw_answer['hitsPerPage']
options[:page] = search.raw_answer['page']
options[:count] = search.raw_answer['totalHits']
Meilisearch.new(**options)
end
end
|