class ActiveModelSerializers::Adapter::JsonApi::PaginationLinks

def initialize(collection, context)

def initialize(collection, context)
  @collection = collection
  @context = context
end

def pages_from

def pages_from
  return {} if collection.total_pages == FIRST_PAGE
  {}.tap do |pages|
    pages[:self] = collection.current_page
    unless collection.current_page == FIRST_PAGE
      pages[:first] = FIRST_PAGE
      pages[:prev]  = collection.current_page - FIRST_PAGE
    end
    unless collection.current_page == collection.total_pages
      pages[:next] = collection.current_page + FIRST_PAGE
      pages[:last] = collection.total_pages
    end
  end
end

def query_parameters

def query_parameters
  @query_parameters ||= context.query_parameters
end

def request_url

def request_url
  @request_url ||= context.request_url
end

def serializable_hash(options = {})

def serializable_hash(options = {})
  per_page = collection.try(:per_page) || collection.try(:limit_value) || collection.size
  pages_from.each_with_object({}) do |(key, value), hash|
    params = query_parameters.merge(page: { number: value, size: per_page }).to_query
    hash[key] = "#{url(options)}?#{params}"
  end
end

def url(options)

def url(options)
  @url ||= options.fetch(:links, {}).fetch(:self, nil) || request_url
end