Class: Pageboy::PageTurner::LinkHeader

Inherits:
Base
  • Object
show all
Defined in:
lib/pageboy/page_turner/link_header.rb

Instance Attribute Summary

Attributes inherited from Base

#resource

Instance Method Summary collapse

Methods inherited from Base

#first, #with_merged_options

Constructor Details

#initialize(url, opts = {}) ⇒ LinkHeader

Returns a new instance of LinkHeader.



8
9
10
11
12
13
14
# File 'lib/pageboy/page_turner/link_header.rb', line 8

def initialize(url, opts={})
  super
  @url = url
  @connection = opts.delete(:connection) or
    fail("LinkHeader page turner requires :connection")
  @first_page_id = url.dup
end

Instance Method Details



20
21
22
23
# File 'lib/pageboy/page_turner/link_header.rb', line 20

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

#first_page_idObject



16
17
18
# File 'lib/pageboy/page_turner/link_header.rb', line 16

def first_page_id
  @first_page_id
end

#page(url, opts = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/pageboy/page_turner/link_header.rb', line 25

def page(url, opts={})
  with_merged_options(opts) do |o|
    response = @connection.get(url)
    header = response.headers[:link]
    # require 'debugger';debugger
    next_page = find_link(header, 'next')
    slice = response.body

    Page.new(self, slice, nil, next_page)
  end
end