class PaginateResponder::PagyAdapter

Pagination adapter for pagy.

Attributes

pagy[RW]
pagy_resource[RW]

Public Class Methods

pagy_method(resource) click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 38
def pagy_method(resource)
  %i[limit offset].all? { |model_method| resource.respond_to?(model_method) } ? :pagy : :pagy_array
end
suitable?(resource, responder) click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 34
def suitable?(resource, responder)
  responder.controller.respond_to?(pagy_method(resource), true)
end

Public Instance Methods

default_max_per_page() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 23
def default_max_per_page
  Pagy::VARS[:max_items] || BigDecimal::INFINITY
end
default_per_page() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 19
def default_per_page
  Pagy::VARS[:items]
end
paginate() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 6
def paginate
  self.pagy, self.pagy_resource = controller.send(self.class.pagy_method(resource), resource, page: page, items: per_page)
  pagy_resource
end
paginate!() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 27
def paginate!
  paginate.tap do
    update
  end
end
total_count() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 15
def total_count
  pagy.count
end
total_pages() click to toggle source
# File lib/paginate-responder/pagy_adapter.rb, line 11
def total_pages
  pagy.pages
end