Sha256: 52828d4786b5b9d50a7bc472a643ead111bd14f653ee4842ffe3bdd277ea7094

Contents?: true

Size: 517 Bytes

Versions: 3

Compression:

Stored size: 517 Bytes

Contents

require 'link_header'

module Footrest
  class Pagination < Faraday::Response::Middleware
    def on_complete(response)
      if response[:response_headers]
        if link = response[:response_headers][:link]
          response[:next_page] = find_link(link, "next")
          response[:first_page] = find_link(link, "first")
        end
      end
    end

    def find_link(header, rel)
      link = ::LinkHeader.parse(header).links.find{ |link| link['rel'] == rel }
      link.to_a.first if link
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
footrest-0.3.1 lib/footrest/pagination.rb
footrest-0.3.0 lib/footrest/pagination.rb
footrest-0.2.2 lib/footrest/pagination.rb