module Pagy::HeadersExtra

def pagy_link_header(pagy)

def pagy_link_header(pagy)
  { 'link' => [].tap do |link|
    if defined?(::Pagy::Keyset) && pagy.is_a?(Keyset)
      link << %(<#{pagy_url_for(pagy, nil, absolute: true)}>; rel="first")
      link << %(<#{pagy_url_for(pagy, pagy.next, absolute: true)}>; rel="next") if pagy.next
    else
      url_str = pagy_url_for(pagy, PAGE_TOKEN, absolute: true)
      link << %(<#{url_str.sub(PAGE_TOKEN, '1')}>; rel="first")
      link << %(<#{url_str.sub(PAGE_TOKEN, pagy.prev.to_s)}>; rel="prev") if pagy.prev
      link << %(<#{url_str.sub(PAGE_TOKEN, pagy.next.to_s)}>; rel="next") if pagy.next
      link << %(<#{url_str.sub(PAGE_TOKEN, pagy.last.to_s)}>; rel="last") \
          unless defined?(::Pagy::Countless) && pagy.is_a?(Countless)
    end
  end.join(', ') }
end