lib/pagy/extras/elasticsearch_rails.rb



# See the Pagy documentation: https://ddnexus.github.io/pagy/extras/elasticsearch_rails

class Pagy
  # Add specialized backend methods to paginate ElasticsearchRails::Results
  module Backend ; private
    # Return Pagy object and items
    def pagy_elasticsearch_rails(results, vars={})
      pagy = Pagy.new(pagy_elasticsearch_rails_get_vars(results, vars))
      return pagy, results.offset(pagy.offset).limit(pagy.items)
    end

    # Sub-method called only by #pagy_elasticsearch_rails: here for easy customization of variables by overriding
    def pagy_elasticsearch_rails_get_vars(results, vars)
      vars[:count] ||= results.total
      vars[:page]  ||= params[:page] || 1
      vars
    end
  end
end