Class: QiitaExport::Fetcher::PaginationFetcher

Inherits:
ApiFetcher show all
Defined in:
lib/qiita-export/fetcher/pagination_fetcher.rb

Instance Method Summary collapse

Methods inherited from Base

#exclude?

Constructor Details

#initialize(endpoint_sym) ⇒ PaginationFetcher

Returns a new instance of PaginationFetcher.



8
9
10
11
# File 'lib/qiita-export/fetcher/pagination_fetcher.rb', line 8

def initialize(endpoint_sym)
  super()
  @endpoint = ApiEndPoint.instance(endpoint_sym)
end

Instance Method Details

#find_articlesObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/qiita-export/fetcher/pagination_fetcher.rb', line 13

def find_articles
  articles = []
  page = 1
  while true
    api_responses = paginate_articles(page)
    break if api_responses.empty?

    api_responses.each do |api_response|
      article = to_article(api_response)
      articles << article unless exclude?(article.title)
    end

    page += 1
    sleep(0.3)
  end
  articles.sort { |a, b| a.created_at <=> b.created_at }
end