Sha256: bc6b87a4bdbfe54458c777ce6cac47f4d3e91ea9822ca40db6bac9c3a91012d8

Contents?: true

Size: 541 Bytes

Versions: 1

Compression:

Stored size: 541 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]
          %w(prev next first last current).each do |page|
            response["#{page}_page".to_sym] = find_link(link, page)
          end
        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

1 entries across 1 versions & 1 rubygems

Version Path
footrest-0.4.1 lib/footrest/pagination.rb