Class: FractalApi::Paginator

Inherits:
Object
  • Object
show all
Defined in:
lib/fractal_api/paginator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(initial_url, result_class, &block) ⇒ Paginator

Returns a new instance of Paginator.



9
10
11
12
13
# File 'lib/fractal_api/paginator.rb', line 9

def initialize(initial_url, result_class, &block)
  @initial_url = initial_url
  @result_class = result_class
  @next_page_block = block
end

Instance Attribute Details

#initial_urlObject (readonly)

Returns the value of attribute initial_url.



7
8
9
# File 'lib/fractal_api/paginator.rb', line 7

def initial_url
  @initial_url
end

#result_classObject (readonly)

Returns the value of attribute result_class.



7
8
9
# File 'lib/fractal_api/paginator.rb', line 7

def result_class
  @result_class
end

Instance Method Details

#each_page(&block) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/fractal_api/paginator.rb', line 19

def each_page(&block)
  response = first_page

  loop do
    block.call(response.results)

    next_page_url = response.next_page_url

    break unless next_page_url

    response = load_page(next_page_url)
  end
end

#first_pageObject



15
16
17
# File 'lib/fractal_api/paginator.rb', line 15

def first_page
  load_page(initial_url)
end