module Kaminari::Xpagination

Constants

VERSION

Protected Instance Methods

set_x_pagination_headers(scope) click to toggle source
# File lib/kaminari/xpagination.rb, line 7
def set_x_pagination_headers(scope)
  data = {}
  scope = instance_variable_get(:"@#{scope}")
  url   = request.original_url.sub(/\?.*$/, '')
  pages = {}

  data[:total] = scope.total_count
  data[:total_pages] = scope.total_pages

  unless scope.first_page?
    pages[:first] = 1
    pages[:prev]  = scope.current_page - 1
  end

  unless scope.last_page?
    pages[:last] = scope.total_pages
    pages[:next] = scope.current_page + 1
  end

  pages.each do |k, v|
    new_params = request.query_parameters.merge({ page: v })
    data.merge!({ "#{k}" => "#{url}?#{new_params.to_param}" })
  end

  headers['X-Pagination'] = data.to_json
end