class Grape::Formatter::Paginater::PageLinks
Constants
- DELIM_LINKS
Attributes
first[RW]
last[RW]
next[RW]
prev[RW]
Public Class Methods
new(response_headers)
click to toggle source
let(:header) { {“Link” => “<api.com/users?page=4&size=20>; rel="next", <…>; rel="last", <…>; rel="first", <…>; rel="prev"”}
# File lib/paginater/page/page_links.rb, line 20 def initialize(response_headers) link_header = response_headers[HEADER_LINK] if link_header return unless link_header =~ /(next|first|last|prev)/ link_header.split(DELIM_LINKS).each do |link| if link.strip =~ /<([^>]+)>; rel=\"([^\"]+)\"/ url_part, meta_part = $1, $2 next if !url_part || !meta_part case meta_part when META_FIRST self.first = url_part when META_LAST self.last = url_part when META_NEXT self.next = url_part when META_PREV self.prev = url_part end end end else # When on the first page self.next = response_headers[HEADER_NEXT] self.last = response_headers[HEADER_LAST] end end