Class: Shipit::OctokitIterator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/shipit/octokit_iterator.rb

Direct Known Subclasses

FirstParentCommitsIterator

Instance Method Summary collapse

Constructor Details

#initialize(relation = nil, github_api: nil) ⇒ OctokitIterator

Returns a new instance of OctokitIterator.



7
8
9
10
11
12
13
14
# File 'lib/shipit/octokit_iterator.rb', line 7

def initialize(relation = nil, github_api: nil)
  if relation
    @response = relation.get(per_page: 100)
  else
    data = yield github_api
    @response = github_api.last_response if data.present?
  end
end

Instance Method Details

#each(&block) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/shipit/octokit_iterator.rb', line 16

def each(&block)
  response = @response

  loop do
    return unless response.present?

    response.data.each(&block)
    return unless response.rels[:next]

    response = response.rels[:next].get
  end
end