class DuodealerAPI::PaginationLinkHeaders
Constants
- LinkHeader
Attributes
next_link[R]
previous_link[R]
Public Class Methods
new(link_header)
click to toggle source
# File lib/duodealer_api/pagination_link_headers.rb, line 8 def initialize(link_header) links = parse_link_header(link_header) @previous_link = links.find { |link| link.rel == :previous } @next_link = links.find { |link| link.rel == :next } self end
Private Instance Methods
parse_link_header(link_header)
click to toggle source
# File lib/duodealer_api/pagination_link_headers.rb, line 18 def parse_link_header(link_header) return [] unless link_header.present? links = link_header.split(',') links.map do |link| parts = link.split('; ') raise DuodealerAPI::InvalidPaginationLinksError.new("Invalid link header: url and rel expected") unless parts.length == 2 url = parts[0][/<(.*)>/, 1] rel = parts[1][/rel="(.*)"/, 1]&.to_sym url = URI.parse(url) LinkHeader.new(url, rel) end end