Sha256: f86e447dbc98db56a8f2adb085c27d93f8642ff2f5983947cee7666f9bfd8b13
Contents?: true
Size: 792 Bytes
Versions: 21
Compression:
Stored size: 792 Bytes
Contents
module Api module Paginable extend ActiveSupport::Concern LINK = 'Link'.freeze included do class_attribute :max_page_size class_attribute :default_page_size class_attribute :default_order self.max_page_size = 100 self.default_page_size = 30 self.default_order = {id: :desc}.freeze end private def render_resources(resource, *) paginator = Shipit::Paginator.new( resource, self, order: default_order, max_page_size: max_page_size, default_page_size: default_page_size, ) headers[LINK] = render_links(paginator.links) super(paginator.to_a) end def render_links(links) links.map { |rel, url| %(<#{url}>; rel="#{rel}") }.join(', ') end end end
Version data entries
21 entries across 21 versions & 1 rubygems