Class: Imgwire::Pagination::PageEnumerator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/imgwire/pagination.rb

Instance Method Summary collapse

Constructor Details

#initialize(page:, limit:, &loader) ⇒ PageEnumerator

Returns a new instance of PageEnumerator.



45
46
47
48
49
# File 'lib/imgwire/pagination.rb', line 45

def initialize(page:, limit:, &loader)
  @page = page
  @limit = limit
  @loader = loader
end

Instance Method Details

#eachObject



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/imgwire/pagination.rb', line 51

def each
  return enum_for(:each) unless block_given?

  current_page = @page
  current_limit = @limit

  while current_page
    result = @loader.call(current_page, current_limit)
    yield result
    current_limit = result.pagination.limit || current_limit
    current_page = result.pagination.next_page
  end
end